繁体   English   中英

如何在asp.net中使用DocumentFormat.OpenXml将XML文件转换为xls?

[英]How to convert XML file to xls using DocumentFormat.OpenXml in asp.net?

如何在asp.net中使用DocumentFormat.OpenXml将XML文件转换为xls?

  • 从fileupload打开xml文件,然后转换为.xls。
  • 即使巨大的xml文件,转换速度也非常快。
  • 无需使用Interop.Excel。无需提供链接,请使用c#代码进行解释。

您要问的是使用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

希望能帮助到你。

弗朗切斯科

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM