使用Javascript / classic-ASP将XML导出到Excel电子表格

时间:2009-10-06 03:47:12

标签: javascript xml excel asp-classic

我正在尝试使用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格式化?我正在尝试找到最简单的解决方案,因为我对网络编程很新。另外,我使用的是经典的ASP / VBscript。

2 个答案:

答案 0 :(得分: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
    }
}

答案 1 :(得分:0)

您的字符编码不匹配。可能客户端假设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"