gpt4 book ai didi

.net - 生成Excel文件错误

转载 作者:行者123 更新时间:2023-12-02 11:33:07 26 4
gpt4 key购买 nike

我在经典 ASP 中使用以下代码来生成 Excel 文件,代码很简单并且有效。我在 Windows Vista x86 上的 IIS 7.0 下运行代码。两个问题,

  1. 出现一个奇怪的警告框,这是屏幕快照

http://i27.tinypic.com/2n81udw.jpg

  • 所有单元格的背景都是白色,每个单元格没有边框显示,这是屏幕快照,
  • http://i25.tinypic.com/vy5t2d.jpg

    我的代码,

    <%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
    <%

    function writeXlsHttpHeaders(filename){
    Response.ContentType = "application/vnd.ms-excel";
    Response.Charset = "utf-8";
    Response.AddHeader("Content-Disposition",
    "attachment; filename="+filename+".xls");
    }

    function getXlsStart(){
    return ""
    + "<html>\n"
    + "<head>\n"
    + "<meta http-equiv=\"Content-Type\" "
    + "content=\"text/html; charset=UTF-8\">\n"
    + "<style type=\"text/css\">\n"
    + "html, body, table {\n"
    + " margin: 0;\n"
    + " padding: 0;\n"
    + " font-size: 11pt;\n"
    + "}\n"
    + "table, th, td { \n"
    + " border: 0.1pt solid #D0D7E5;\n"
    + " border-collapse: collapse;\n"
    + " border-spacing: 0;\n"
    + "}\n"
    + "</style>\n"
    + "</head>\n"
    + "<body>\n"
    + "<table>\n"
    + "";
    }

    function getXlsEnd(){
    return ""
    + "</table>\n"
    + "</body>\n"
    + "</html>"
    + "";
    }

    function xlsEscape(val){
    if (typeof val === "number") {
    return val.toString(10).replace(".", ",");
    } else if (typeof val === "string") {
    return Server.HTMLEncode(val);
    } else if (val === null) {
    return "#NULL#";
    } else if (val === undefined) {
    return "#UNDEFINED#";
    } else {
    return "#ERROR#";
    }
    }

    function writeXls(filename, data, columnCount){
    writeXlsHttpHeaders(filename);
    Response.Write(getXlsStart());
    var columnCount = 2;
    for (var i=0, il=10; i<il; i+=columnCount) {
    Response.Write("<tr>");
    for (var j=0; j<columnCount; j++) {
    Response.Write("<td>");
    Response.Write(xlsEscape("Data"));
    Response.Write("</td>");
    }
    Response.Write("</tr>\n");
    // prevent Response Buffering Limit Exceeded
    if (i % 1000 === 0) {
    Response.Flush();
    }
    }
    Response.Write(getXlsEnd());
    }

    function main(){
    var filetype = Request.QueryString("filetype")();
    var filename = "filename";

    Response.Clear();
    writeXls(filename);
    Response.End();
    }

    main();

    %>

    有什么解决办法吗?

    提前致谢,乔治

    最佳答案

    A.有一个奇怪的警告框...

    您正在提供文件扩展名为 xls 的 HTML。这是去年左右引入的安全违规行为。将扩展名更改为 htm 是否可以避免安全提示?

    B. 因为您的 HTML 表格仅包含两列和五行。没有其他“细胞”,因此没有边界。为了避免这种情况,我确信您需要提供 CVS、Workbook XML 或“其他”。 (在我看来,我喜欢没有边界,但大多数人不喜欢。)

    C. ...Windows Vista x86 上 IIS 7.0 下的代码...

    这是一个 Excel 和安全问题,与 IIS 或 Windows 无关。

    D. 抱歉,我没有具体的答案给您,因为我过去几年一直在使用 Syncfusion 3.0。它提供了正确的 Excel 格式的工作簿,并且没有任何问题。

    关于.net - 生成Excel文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383366/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com