Frage

Ich suche eine Excel -Bibliothek, die .XLS (nicht .xlsx) -Dateien liest/schreibt.

Ich benutze Exzellent Aber es ist sehr fehlerhaft und ich Ich kann die Dateien, die ich erstelle, nicht öffnen, die ich erstelle. Das Problem ist seit fast einem Jahr bekannt und wurde noch nicht behoben.

Ich habe in einem anderen Thread gesehen, den jemand vorgeschlagen hat Epplus, aber das funktioniert nur mit dem Format von 2007/2010 .xlsx.

Ich habe verwendet Koogra In der Vergangenheit und ziemlich zufrieden damit, aber ich glaube, es kann nur lesen ... nicht schreiben.

Wenn Sie eine Bibliothek kennen, lassen Sie mich bitte wissen, wie sie heißt.

Bearbeiten: Ich freue mich sehr, meine Excel-Datei mit der integrierten microsoft.office.interop.excel bei Bedarf zu erstellen. Mein Computer hat jedoch Office 2007 und die Zielgeräte haben nur Office 2003. Ich habe festgestellt, dass ich 2 Dateiversionen für Dateiversionen habe Diese Bibliothek: 12 und 14. Ich habe die Excel -Version auf den Zielmaschinen überprüft und es ist 11.8169.8172 - ich gehe davon aus, dass das integrierte Excel -Interop nicht auf dem Ziel funktioniert?

War es hilfreich?

Lösung

Ich würde empfehlen Npoi. Npoi ist FREI und funktioniert ausschließlich mit .xls -Dateien. Es hat mir sehr geholfen.

Detail: Sie müssen Microsoft Office nicht auf Ihrem Computer installieren, um mit .xls -Dateien zu arbeiten, wenn Sie NPOI verwenden.

Überprüfen Sie diese Blog -Beiträge:

Erstellen von Excel -Tabellen .xls und .xlsx in C#

NPOI mit Excel -Tabelle und dynamischem Diagramm

AKTUALISIEREN

NPOI 2.0 Support für XLSX und DOCX.

Hier können Sie mehr darüber lesen:

NPOI 2.0 -Serie von geplanten Beiträgen

Andere Tipps

Gibt es einen Grund, warum Sie die Excel ODBC -Verbindung nicht zum Lesen und Schreiben an Excel verwenden können? Ich habe beispielsweise den folgenden Code verwendet, um aus einer Excel -Dateizeile nach einer Datenbank nach Zeile zu lesen:

private DataTable LoadExcelData(string fileName)
{
  string Connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";";

  OleDbConnection con = new OleDbConnection(Connection);

  OleDbCommand command = new OleDbCommand();

  DataTable dt = new DataTable(); OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Sheet1$] WHERE LastName <> '' ORDER BY LastName, FirstName", con);

  myCommand.Fill(dt);

  Console.WriteLine(dt.Rows.Count);

  return dt;
}

Sie können in die Excel -Datenbank auf die gleiche Weise schreiben. Wie Sie sehen können, können Sie die zu verwendende Versionsnummer auswählen, damit Sie die Excel -Versionen für die Maschine mit Excel 2003 herabstufen können. Tatsächlich gilt das gleiche für die Verwendung der Interop. Sie können die untere Version verwenden und sie sollte mit Excel 2003 funktionieren, obwohl Sie nur die höhere Version auf Ihrem Entwicklungs -PC haben.

Sie können das Tool auf dem 3. Party in Betracht ziehen, das aufgerufen wird Excel Jetcell .NET -Komponente Für Lesen/Schreiben von Excel -Dateien:

C# Probe

// Create New Excel Workbook
ExcelWorkbook Wbook = new ExcelWorkbook();
ExcelCellCollection Cells = Wbook.Worksheets.Add("Sheet1").Cells;

Cells["A1"].Value = "Excel writer example (C#)";
Cells["A1"].Style.Font.Bold = true;
Cells["B1"].Value = "=550 + 5";

// Write Excel XLS file
Wbook.WriteXLS("excel_net.xls");

VB.NET -Beispiel

' Create New Excel Workbook
Dim Wbook As ExcelWorkbook = New ExcelWorkbook()
Dim Cells As ExcelCellCollection = Wbook.Worksheets.Add("Sheet1").Cells

Cells("A1").Value = "Excel writer example (C#)"
Cells("A1").Style.Font.Bold = True
Cells("B1").Value = "=550 + 5"

' Write Excel XLS file
Wbook.WriteXLS("excel_net.xls")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top