【发布时间】:2015-04-06 19:49:27
【问题描述】:
好的,我一直致力于通过 VB.Net 对一些 XML 数据进行 XSL 转换。我一切正常,数据保存为可读的 .xls 文件。问题是当我尝试打开文档时收到以下信息。
您尝试打开的文件“Test_Xls.xls”位于不同的 格式比文件扩展名指定的格式。验证文件是 未损坏并且在打开文件之前来自受信任的来源。做 你想现在打开文件吗?
我一直在做一些阅读,但我无法提出任何解决问题的方法。我已经在 Notepad++ 中获取了 .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>
这引出了问题.. 有没有办法通过 Xml 转换生成可以在 Excel 中看到的文档而不会收到此错误消息?我无法更改注册表,也无法使用任何第 3 方实用程序。
【问题讨论】:
-
你试过扩展 .xml 了吗?
-
我已经成功地将其转换并导出为 .xml 文件,没有任何问题。但是,在与其他人交谈后,它需要具有 .xls 扩展名。
-
".xls" 表示本机 Excel '97 等。您必须说明您的输出在 SpreadsheetML 中。所以,试试“.xlsx”。
-
.xls是二进制格式(我相信是 BIFF8 格式),所以如果您有一个扩展名为.xls的文件,Excel 希望它采用这种格式,而不是 XML文件。您实际使用的是“SpeadsheetML”。尝试使用顶部的处理指令<?mso-application progid="Excel.Sheet"?>输出您的 XML。 (见msdn.microsoft.com/en-us/library/bb226687(v=office.11).aspx) -
尝试将格式更改为“Excel 2004 XML 电子表格”(扩展名:*.xml)。 XSLT 样式表转换为 XML,这是唯一真正是 XML 的 Excel 格式。 *.xlsx 是一种压缩的 XML 格式,我相信它在这里没有用。
标签: xml vb.net excel xslt openxml