Excel导出xml时提示“无法保存或者导出XML数据,此工作薄中XML映射不可导出(xml映射随便导的)请问怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel导出xml时提示“无法保存或者导出XML数据,此工作薄中XML映射不可导出(xml映射随便导的)请问怎么办相关的知识,希望对你有一定的参考价值。
Excel导出xml时提示“无法保存或者导出XML数据,此工作薄中XML映射不可导出(xml映射随便导的)请问怎么办
参考技术A 一般情况,是你的xml映射文件有问题。如果你的xml没有复杂的嵌套逻辑,如以下xml结构:
<root>
<element01></element01>
<element02></element02>
<element03></element03>
</root>
xml映射文件设置为:
<root>
<root>
<element01></element01>
<element02></element02>
<element03></element03>
</root>
<root>
<element01></element01>
<element02></element02>
<element03></element03>
</root>
</roots>
复杂的嵌套xml,目前我还试出来,ms官方给出的范例包括xml数据、xsd定义,在excel中导出的时候居然也报这个错误,有兴趣的同学可以研究下,发个结论。
http://msdn.microsoft.com/zh-cn/library/aa203737(v=office.11).aspx
将数据导出到 XML 以在 Excel 中打开
【中文标题】将数据导出到 XML 以在 Excel 中打开【英文标题】:Exporting data to XML to be opened in Excel 【发布时间】:2012-03-20 10:34:09 【问题描述】:我有一个关于将数据保存到要由 Microsoft Excel 打开的 XML 文件的问题。我在 Visual C++ 中使用 MFC 构建了一个报表控件,并且我一直在使用简单的 CSV(逗号分隔值)文件将数据导出到 Excel。 CSV 方法运行良好,因为它在 Excel 上显示报告中的所有行和列。
然而,当必须保存每列的数据类型时,问题就出现了,因为 CSV 方法在导出数据时会忽略数据类型,因为一旦在 Excel 中打开,它将以字符串形式显示所有单元格。报告中单元格的数据类型很重要,因为一旦在 Excel 中导出(或打开),我的客户将对报告数据运行宏。
我希望使用 XML 来克服这个问题。是否可以使用 XML 保存数据类型,因为它提供格式和架构?您能否给我任何链接或任何指针,以允许自定义应用程序使用 XML 来保存要在 Excel 中打开的数据,同时保留数据类型?
提前致谢。
【问题讨论】:
抱歉,我的回答对你有用还是我跑题了? 【参考方案1】:如果您在 Excel 中创建并打开这样的 XML 文件:
<rows>
<row>
<name>Name 1</name>
<number>123.45</number>
<date>2012-03-21</date>
</row>
<row>
<name>Name 2</name>
<number>678.01</number>
<date>2012-03-22</date>
</row>
</rows>
Excel 在自动识别数据类型方面做得很好——尽管 XML 没有关联的架构,但它会抱怨。
要将架构与 XML 关联,请创建 XML 架构文件 (rows.xsd
):
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="rows">
<xs:complexType>
<xs:sequence>
<xs:element name="row" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="number" type="xs:float"/>
<xs:element name="date" type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
然后你在你的 XML 中引用它:
<rows xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="rows.xsd">
<row>
<name>Name 1</name>
<number>123.45</number>
<date>2012-03-21</date>
</row>
<row>
<name>Name 2</name>
<number>678.01</number>
<date>2012-03-22</date>
</row>
</rows>
在架构文件中,您可以指定数据的类型并描述您的结构 - 但您必须知道不重要的 XSD 语法。
另请参阅:http://support.microsoft.com/kb/827294(请注意,它说的是“XSL”,而应该说“XSD”)
【讨论】:
以上是关于Excel导出xml时提示“无法保存或者导出XML数据,此工作薄中XML映射不可导出(xml映射随便导的)请问怎么办的主要内容,如果未能解决你的问题,请参考以下文章
nodejs-xlsx导出的excel,office打开提示“发现不可读取的内容”?
Winform导出Excel数据时,像身份证这样的纯数字列如果要保存为字符串类型的,则导出Excel会有警告提示
解决导出Excel时提示“Warning: Maximum number of format records exceeded. Using default format”