wake-up-neo.com

Wie konvertiert man eine Xls-Datei mit C # in eine Xlsx-Datei?

Ich habe eine Anwendung entwickelt, die Daten aus einer Excel-Datei liest, aber beim Versuch, sie zu öffnen, wurde eine Ausnahme ausgelöst, wenn die Quelldatei im xls-Format gespeichert wird OpenXML). Wenn ich diese Datei im xlsx-Format speichere, funktioniert das einwandfrei. Bitte helfen Sie mir, dieses Problem zu lösen.

5
Hamzatovic

Sie können xls-Dateien nicht mit OpenXML lesen.

Die Lösung von Microsoft besteht darin, die xls-Datei mit Office Interop zu lesen (es wird jedoch nicht empfohlen, Interop auf dem Server zu verwenden) und die Daten Schritt für Schritt von Interop an OpenXML zu übertragen.

Eine andere Lösung besteht darin, eine Excel-Bibliothek wie EasyXLS zu verwenden und zwischen diesen beiden Excel-Dateiformaten zu konvertieren:

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

Weitere Informationen zum Konvertieren von xls in xlsx finden Sie hier.

Ich bin nicht ganz sicher, warum Sie die Datei konvertieren müssen und warum Sie die xls-Datei nicht einfach mit einer anderen Technologie als OpenXML lesen.

2
alex.pulver

Verwenden Sie Free Spire.XLS dll, das über NuGet verfügbar ist.

Probe:

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

XLS ist das ältere Excel-Dateiformat. XSLX ist das neuere Format, das als OpenXML gespeichert wird. XSLX ist eigentlich eine Zip-Datei, in der die verschiedenen Komponenten als Dateien gespeichert sind. Sie können die Datei nicht einfach umbenennen, um sie in das neue Format zu bringen. Um die Datei in XSLX zu speichern, müssen Sie die Datei im Format Excel 2010+ speichern. 

Wenn Sie Excel Interop verwenden, ist dies eine Option für die SaveAs-Methode.

weitere Informationen finden Sie in der Funktion: _Workbook.SaveAs-Methode

und die Eigenschaft: 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-Informationen hier: https://msdn.Microsoft.com/en-us/library/Microsoft.office.interop.Excel._workbook.saveas(v=office.11).aspx

1
Ori a

Zum zuverlässigen Lesen von XLS-Dateien können Sie ExcelDataReader verwenden, eine leichte und schnelle Bibliothek, die in C # zum Lesen von Microsoft Excel-Dateien geschrieben wird. Es unterstützt den Import von Excel-Dateien bis zur Version 2.0 von Excel (veröffentlicht 1987!).

Alternativ können Sie eine -Dateikonvertierungs-API wie Zamzar verwenden. Dieser Service besteht seit über 10 Jahren und bietet eine einfache REST - API für die Dateikonvertierung - er unterstützt die Konvertierung von XLS in XLSX. Sie können es in C # verwenden und es verfügt über zusätzliche Funktionen wie das Importieren und Exportieren von Dateien zu und von Amazon S3, FTP-Servern usw.

Vollständige Offenlegung: Ich bin der Hauptentwickler für die Zamzar-API.

0
Chris Whyley