【问题标题】:Export XML to Excel spreadsheet using Javascript/classic-ASP使用 Javascript/classic-ASP 将 XML 导出到 Excel 电子表格
【发布时间】:2009-10-06 03:47:12
【问题描述】:

我正在尝试使用 javascript 将 XML 数据从网页导出到电子表格。到目前为止,我只是尝试了非常简单的方法:

Sub Export
    Response.ContentType = "application/vnd.ms-excel"
    <script>            
         var XML = document.getElementById("xmldata");              
         window.open(XML);
    </script>
End Sub

这会尝试将 XML 文件作为 excel 电子表格打开,但由于包含无效字符而无法打开。我已经找到了这些字符,罪魁祸首往往是水平破折号“-”。可能还有其他无效字符,但如果我手动删除它们,XML 文件可以正常打开。

我将如何格式化 XML 内容以删除或替换无效字符以正确显示到 excel? XML 表是从数据库中的字段构建的,我应该在构建时对其进行格式化还是使用 javascript 对其进行格式化?我正在尝试找到最简单的解决方案,因为我对 Web 编程还很陌生。另外,我使用的是经典的 ASP/VBscript。

【问题讨论】:

  • 你问题中的代码毫无意义,这真的是你的代码吗??
  • 也许我应该澄清这个问题,但是是的,忽略该代码。我有一个构建在网页内的 XML 数据岛。我想获取此 XML 数据并将其导出到 Excel 中,不包含其中包含的任何无效字符。

标签: javascript xml excel asp-classic


【解决方案1】:

通过从 XML 数据中获取 HTML 表输出然后使用 ActiveX 将其放入 Excel 来解决这个问题。

var x=listingTable.rows

var xls = new ActiveXObject("Excel.Application")
xls.visible = true
xls.Workbooks.Add

for (i = 0; i < x.length; i++)
{
    var y = x[i].cells

    for (j = 0; j < y.length; j++)
    {
        xls.Cells( i+1, j+1).Value = y[j].innerTex
    }
}

【讨论】:

    【解决方案2】:

    您的字符编码不匹配。很可能客户端采用 UTF-8 字符编码,但您从服务器发送 ANSI 编码,例如 Windows-1252。

    您需要确保客户端知道服务器正在使用服务器端代码中的Response.CharSet = "Windows-1252" 发送 Windows-1252,并在您的 xml 开头包含以下内容:-

    <?xml version="1.0" encoding="Windows-1252" ?>
    

    或者,如果您使用 Response.Write 发送您可以使用的 XML 内容:-

     Response.Codepage = 65001
     Response.CharSet ="UTF-8"
    

    【讨论】:

    • 感谢您的建议。虽然我使用的是 XML 数据岛,所以我认为我不能像那样设置 XML 版本和编码(至少,当我尝试时它对我不起作用)而且我认为我无法访问来自 VBscript 的数据岛(同样,这可能是正确的,也可能不是正确的 - 我刚刚开始涉足网络编程)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多