代码之家  ›  专栏  ›  技术社区  ›  Ian

Excel将电子表格ML转换为开放式XML(XLSX)

  •  4
  • Ian  · 技术社区  · 16 年前

    简单的问题。有人知道将电子表格ML(Excel2003 XML)转换为用于Excel2007(XLSX)文件的打开文档XML的简单方法吗?

    我有一个库,不幸的是它没有读取XML格式,所以我需要尝试找到一种方法来读取数据,而不涉及其他库。

    感谢您的建议。

    6 回复  |  直到 7 年前
        1
  •  1
  •   richardtallent    16 年前

    文件格式确实从spreadsheetml显著更改为office open xml。

    而且,由于现在电子表格文件被分解成多个XML文件(所有这些文件都被压缩),因此没有真正希望得到一个简单的XLST解决方案。

    不幸的是,最简单的做法是使用宏自动执行Excel以打开每个电子表格ML文件,并对新格式执行“另存为”。这可以在Office2003中使用Office2007文件格式插件完成。也许这可以降级为批处理过程,这样服务器就不会直接参与其中了?

    如果电子表格中的数据很琐碎,并且遵循一致的格式,则可以编写自己的解析器直接从电子表格ML文件导入。

        2
  •  2
  •   Samuel Neff    14 年前

    如果你的口袋很深,细胞可以读/写这两种格式,应该提供真正容易的转换而不需要自动化。

    http://www.aspose.com/categories/.net-components/aspose.cells-for-.net/default.aspx

    .NET的aspose.cells

    .NET的.cells是一个屡获殊荣的电子表格组件,它允许.NET开发人员在不需要依赖Microsoft Excel的情况下,将Excel电子表格的读、写和操作能力嵌入到自己的应用程序中。

    .NET的.cells是一个成熟的、可扩展的、功能丰富的组件,它提供了许多功能,这些功能远远超出了其他供应商的简单数据导出功能。使用.NET的.cells开发人员可以导出数据、将电子表格格式设置为最精细的级别、导入图像、导入图表、创建图表、应用和计算复杂公式、流式处理Excel数据、以各种格式保存等等,而无需使用Microsoft Excel或Microsoft Office Automation。

    对于企业(内部)开发,定价从每个开发人员899美元开始,然后从那里急剧上升。

        3
  •  1
  •   Oliver Hanappi    16 年前

    一个简单的方法是使用Excel的COM库(Excel2007),但我认为这不是您想要的答案。

    你的图书馆有什么能力?您可以使用OpenXMLSDK2.0根据库的输出编写电子表格文档。

    最好的问候

        4
  •  1
  •   michaelt    13 年前

    试用使用 JODConverter . jodconverter允许使用openoffice.org或libreoffice引擎转换电子表格ML。

        5
  •  0
  •   ATorras    16 年前

    iIRC Office2003格式与OpenDocument格式类似:它是一个包含XML文件的zip文件,因此(如果您有足够的时间/勇气)可以打开它,找到包含数据的XML文件,最后处理XML。

    我知道,这个答案是给勇敢的开发者的;)

    当做。

        6
  •  0
  •   Leonardo Alves Machado Vivek Kumar    7 年前

    检查此代码静态void xlstoxlsx

    static void XlsToXlsx (string sourceFile, string destinationFile)
    {
        Type officeType = Type.GetTypeFromProgID("Excel.Application");
    
        Excel.Application app = new Excel.Application();
        app.DisplayAlerts = false;
        // Open Excel Workbook for conversion.
        Excel.Workbook excelWorkbook = app.Workbooks.Open(sourceFile);
        // Save file as CSV file.
        //excelWorkbook.SaveAs(destinationFile, Excel.XlFileFormat.xlCSV);
        excelWorkbook.SaveAs(destinationFile, Excel.XlFileFormat.xlOpenXMLWorkbook);
        // Close the Workbook.
        excelWorkbook.Close();
        // Quit Excel Application.
        app.Quit();
    }