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

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

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

这试图打开XML文件作为Excel电子表格,但它不会打开,因为它具有无效的字符。 我跟踪了这​​些angular色,主要的罪魁祸首就是横向破折号“ – ”。 可能还有其他无效的字符,但如果我手动删除它们,XML文件打开罚款。

我将如何去格式化XML内容来删除或replace无效的字符,以正确显示为Excel? XML表格是从数据库中的字段构build的,我应该使用javascript来格式化它吗? 我试图find最简单的解决scheme,因为我是相当新的networking编程。 另外,我正在使用经典的ASP / VBscript。

通过从XML数据获取HTML表格输出,然后使用ActiveX将其input到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 } } 

你在字符编码方面不匹配。 可能客户端正在采用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"