Gibt es eine einfache Möglichkeit, eine .xls-Datei in eine .csv-Datei zu konvertieren? (Excel)
in C#-Code?
Ich möchte eine bestehende .xls-Datei in eine .csv-Datei umwandeln.
Vielen Dank im Voraus
Gibt es eine einfache Möglichkeit, eine .xls-Datei in eine .csv-Datei zu konvertieren? (Excel)
in C#-Code?
Ich möchte eine bestehende .xls-Datei in eine .csv-Datei umwandeln.
Vielen Dank im Voraus
Dies ist eine Abwandlung der Antwort von nate_weldon mit ein paar Verbesserungen:
application.DisplayAlerts = false;
bevor Sie versuchen zu speichern, um die Eingabeaufforderungen auszublendenBeachten Sie auch, dass die application.Workbooks.Open
y ws.SaveAs
Methoden erwarten sourceFilePath
y targetFilePath
vollständige Pfade zu sein (d.h. Verzeichnispfad + Dateiname)
private static void SaveAs(string sourceFilePath, string targetFilePath)
{
Application application = null;
Workbook wb = null;
Worksheet ws = null;
try
{
application = new Application();
application.DisplayAlerts = false;
wb = application.Workbooks.Open(sourceFilePath);
ws = (Worksheet)wb.Sheets[1];
ws.SaveAs(targetFilePath, XlFileFormat.xlCSV);
}
catch (Exception e)
{
// Handle exception
}
finally
{
if (application != null) application.Quit();
if (ws != null) Marshal.ReleaseComObject(ws);
if (wb != null) Marshal.ReleaseComObject(wb);
if (application != null) Marshal.ReleaseComObject(application);
}
}
Ich integriere die Antwort von @mattmc3. Wenn Sie eine xlsx Datei sollten Sie diese Verbindungszeichenfolge verwenden ( die von Matt angegebene Zeichenfolge funktioniert für xls-Formate, nicht für xlsx ):
var cnnStr = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO\"", excelFilePath);
Ich hatte ein ähnliches Aufgabenproblem. Konvertieren Sie eingehende Transaktionen wie xlsx in tabulatorgetrennte Daten zur automatischen Verarbeitung durch ein bestehendes System. Es muss unbeaufsichtigt laufen. Nachdem ich mir viele Lösungen auf verschiedenen Websites angeschaut und zwei davon ausprobiert hatte, nämlich MS Office Excel für C#, wie oben beschrieben, stieß ich auf Probleme mit verschiedenen Versionen von MS Office und möglicherweise älteren Versionen auf dem PC, die ich nicht kontrollieren konnte. Am Ende entschied ich mich für... Aspose.Cells
über NuGet. Die Lösung besteht aus vier Zeilen Code.
string soureFilePath = "my/source/path/file.xlsx";
string targetFilePath = "my/output/path/file.txt";
var book = new Workbook(soureFilePath);
book.Save(targetFilePath, SaveFormat.Tsv);
Es konvertiert nur Blatt 1 und ignoriert die Blätter 2 und 3, aber das ist für meine Zwecke in Ordnung. Ich vermute, dass es eine Funktion hat, um bei Bedarf alle Blätter zu konvertieren, aber das brauchte ich nicht, also habe ich es mir nicht angesehen.
Ihre Website für den Fall, dass jemand die Informationen oder die Lizenzvereinbarung einsehen möchte (kostenlose Nutzung).
Tabellenkalkulationen einfach manipulieren | Aspose.Cells Universal Library https://products.aspose.com/cells
Hinweis: Ich arbeite nicht für Aspose, ich bin nicht mit Aspose verbunden und ich profitiere in keiner Weise von diesem Beitrag.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.