我正在尝试使用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。
答案 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"