【问题标题】:How to convert XML file to xls using DocumentFormat.OpenXml in asp.net?如何在 asp.net 中使用 DocumentFormat.OpenXml 将 XML 文件转换为 xls?
【发布时间】:2014-01-26 20:07:37
【问题描述】:

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

  • 从fileupload打开xml文件,然后转换成.xls。
  • 即使 xml 文件很大,转换也非常快。
  • 无需使用Interop.Excel。不提供链接,请用c#代码解释。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    你问的是一种关于使用 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)

    希望对你有帮助。

    弗朗西斯科

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 2019-10-04
      相关资源
      最近更新 更多