如何使用asp.net中的DocumentFormat.OpenXml将XML文件转换为xls?
答案 0 :(得分:0)
你问它是一种关于使用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)
希望它有所帮助。
弗朗西斯