Xml转换为Excel xls

好的,所以我一直在通过VB.Net来处理一些XML数据的XSL转换。 我有一切工作正常,数据保存为一个可读的.x​​ls文件。 问题是我尝试打开文档时收到以下内容。

您尝试打开的文件“Test_Xls.xls”采用与文件扩展名指定的格式不同的格式。打开文件之前,验证该文件是否未被破坏,是否来自受信任的来源。你想现在打开文件吗?

您尝试打开的文件“Test_Xls.xls”采用与文件扩展名指定的格式不同的格式。 打开文件之前,validation该文件是否未被破坏,是否来自受信任的来源。 你想现在打开文件吗?

我一直在做一些阅读,我还没有能够提出任何解决问题的方法。 记事本+ +中的.xls文件,并剥夺它的一切,我仍然可以产生错误。 我把这个作为我转换的输出:

<?xml version="1.0" encoding="utf-8"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <Worksheet ss:Name="Testing Data"> <Table> <Row> <Cell> <Data ss:Type="String">Tests</Data> </Cell> </Row> <Row> <Cell> <Data ss:Type="Number">1</Data> </Cell> </Row> </Table> </Worksheet> </Workbook> 

哪些乞丐的问题..有没有什么办法来产生一个文件,可以在Excel中看到通过Xml转换没有收到此错误消息? 我不能改变registry,我不能使用任何第三方实用程序。

(由于这个问题似乎已经解决了,我已经把我的评论扩展到了一个答案。)

你的方法的问题就是,就我们所看到的(除了输出文件之外,我们没有看到任何代码):你的XSLT样式表生成一个XML文档,你用*.xls扩展名保存。 这会破坏文件,因为当解释为*.xls文件时,内容无效。

到目前为止讨论的文件扩展名:

  • *.xsl :二进制格式,Excel的旧版本在默认情况下在其中存储工作表。 不是 XML。
  • *.xslx :Excel使用的较新版本的格式。 在内部,它是一个包含多个XML组件的压缩文件。
  • *.xml :在这种特定情况下,所谓的“Excel 2004 XML Spreadsheet”(对于Mac;“Windows 2003中的Excel 2003 XML Spreadsheet”)格式,其将文档存储为简单的,解压缩的XML。 顺便说一下,其他Office产品也知道* .xml格式,例如Office Word)

将转换后的文档保存为*.xml ,这使得Excel清楚地知道内容既不是旧的,二进制格式的,也不是压缩的XML标准。


更多详细信息:令人困惑的是,用于Microsoft Office调色板的一组压缩XML格式被称为“Office Open XML”(“OOXML”, ECMA-376 )。 简单的XML格式有时称为“Microsoft Office XML”格式。 较新版本的Excel的特定格式是“SpreadsheetML” 。

为了使这个更加复杂,还有“开放式办公”,这个开放式办公有许多其他含义,都与微软无关。

也许你想看看Office XML格式的历史 ?