如何转换XLS文件用C#XLSX文件?

问题描述 投票:6回答:4

我是开发从一个excel文件中读取数据的应用程序,但是当我尝试打开它,如果源文件保存与XLS格式(与OpenXML的打开Excel工作表时,文件包含损坏的数据错误)引发了异常。的确,当我保存这个文件与XLSX格式它工作正常。请帮我解决这个问题。

c# excel openxml xlsx xls
4个回答
3
投票

使用提供免费Spire.XLS DLL通过NuGet

样品:

Workbook workbook = new Workbook();
workbook.LoadFromFile("Input.xls");
workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2013);

2
投票

你不能阅读的OpenXML的XLS文件。

从微软的解决方案是阅读与Office互操作的XLS文件(但不建议互操作在服务器上使用),一步OpenXML与互操作步骤传输数据。

另一种解决方案是使用Excel库像EasyXLS这两个Excel文件格式之间进行转换:

ExcelDocument workbook = new ExcelDocument();
workbook.easy_LoadXLSFile("Excel.xls");
workbook.easy_WriteXLSXFile("Excel.xlsx");

查找有关converting xls to xlsx的更多信息。

我不明白为什么你需要转换的文件,为什么你不只是读XLS文件,使用不同的技术,那么OpenXML的,肯定的。


1
投票

XLS是早期Excel文件格式。 XSLX存储为OpenXML的较新的格式。 XSLX实际上是存储在它的文件的各种组件的zip文件。你不能简单地重命名文件,以获得它变成新的格式。为了节省XSLX文件你必须将文件保存到Excel的2010+格式。

如果你正在使用Excel互操作则是在另存为方法的选择。

更多的信息查询功能:_Workbook.SaveAs方法

和属性:的FileFormat:

Optional Object.
The file format to use when you save the file. For a list of valid choices, 
see the FileFormat property. For an existing file, the default format is the 
last file format specified; for a new file, the default is the format of the 
version of Excel being used.

MSDN信息在这里:https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel._workbook.saveas(v=office.11).aspx


1
投票

为了可靠地读取,你可以使用ExcelDataReader这是一个用C#读取Microsoft Excel文件的轻型和快速库的XLS文件。它支持的Excel导入文件回的Excel 2.0版本的所有方式(在1987年发布了!)

另外,您可以使用一个文件转换API像Zamzar。这项服务已经有10年以上,并提供了文件转换一个简单的REST API - 它支持XLS到XLSX转换。您可以在C#中使用它,它有一个像允许您导入和导出文件,并从亚马逊S3,FTP服务器等额外的功能

披露:我为Zamzar API的首席开发人员。

© www.soinside.com 2019 - 2024. All rights reserved.