【发布时间】:2014-01-26 20:07:37
【问题描述】:
如何在 asp.net 中使用 DocumentFormat.OpenXml 将 XML 文件转换为 xls?
- 从fileupload打开xml文件,然后转换成.xls。
- 即使 xml 文件很大,转换也非常快。
- 无需使用Interop.Excel。不提供链接,请用c#代码解释。
【问题讨论】:
如何在 asp.net 中使用 DocumentFormat.OpenXml 将 XML 文件转换为 xls?
【问题讨论】:
你问的是一种关于使用 OpenXMLSdk 的教程,我认为它有点离题 ;-)。
无论如何,这个示例从头开始创建一个 xlsx 文件。不要忘记下载 Xml sdk 生产力工具。
考虑一下这个 xml,但它甚至可以处理更大更复杂的情况:
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="TestTable" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="TestTable">
<xs:complexType>
<xs:sequence>
<xs:element name="pk" type="xs:long" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="Surname" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<TestTable>
<pk>1</pk>
<Name>Name1</Name>
<Surname>Surname1</Surname>
</TestTable>
<TestTable>
<pk>2</pk>
<Name>Name2</Name>
<Surname>Surname2</Surname>
</TestTable>
<TestTable>
<pk>3</pk>
<Name>Name3</Name>
<Surname>Surname3</Surname>
</TestTable>
<TestTable>
<pk>4</pk>
<Name>Name4</Name>
<Surname>Surname4</Surname>
</TestTable>
<TestTable>
<pk>5</pk>
<Name>Name5</Name>
<Surname>Surname5</Surname>
</TestTable>
<TestTable>
<pk>6</pk>
<Name>Name6</Name>
<Surname>Surname6</Surname>
</TestTable>
</NewDataSet>
现在你只需要调用这个:
DataTable dt = new DataTable("TestTable");
dt.ReadXml("c:\\test.xml");
ExcelNameSpace.ExcelFile xlsxFile = new ExcelNameSpace.ExcelFile(dt);
xlsxFile.CreatePackage("c:\\myFile.xlsx");
ExcelNameSpace.ExcelFile 类中的代码 90% 会在几秒钟内被生产力工具反映。您应该能够逐步调试并了解您的需求。它大约有1000行,所以我不能在这里发布。 (http://www.devnmore.com/share/ExcelFromScratch.txt)
希望对你有帮助。
弗朗西斯科
【讨论】: