Wie fügen Sie zusätzliche Arbeitsblätter in einer Excel-von DataTable
Ich versuche zu schaffen, eine excel-Bericht, mehrere Blätter. jedes dieser Blätter hat, die Daten aus einer DataTable, die Ergebnisse einer SQL-Abfrage. Das erste Arbeitsblatt wird erstellt, richtig, aber, ich bin nicht in der Lage zu erstellen, die dem zweiten Arbeitsblatt. Ich verstehe, was ich falsch mache, aber ich bin mir gerade nicht sicher, wie Sie ein Arbeitsblatt mit dem folgenden code ohne das erstellen einer neuen excel-Arbeitsmappe alles.
Ich dachte nur die Erstellung der Arbeitsmappe, und dann nur das hinzufügen Blätter. Aber ich kann nicht scheinen, um Sie alle auf.
Dies ist, was ich versuche:
static void Main(string[] args)
{
Excel_FromDataTable(testingTable);
Excel_FromDataTable(testingTable);
}
}
private static void Excel_FromDataTable(DataTable dt)
{
var excel = new Microsoft.Office.Interop.Excel.Application();
var workbook = excel.Workbooks.Add(true);
int iCol = 0;
foreach (DataColumn c in dt.Columns)
{
iCol++;
excel.Cells[1, iCol] = c.ColumnName;
}
int iRow = 0;
foreach (DataRow r in dt.Rows)
{
iRow++;
//add each row's cell data...
iCol = 0;
foreach (DataColumn c in dt.Columns)
{
iCol++;
excel.Cells[iRow + 1, iCol] = r[c.ColumnName];
}
}
//Global missing reference for objects we are not defining...
object missing = System.Reflection.Missing.Value;
//If wanting to Save the workbook...
workbook.SaveAs(@"C:\MyExcelWorkBook2.xlsx");
workbook.Close();
}
Ich denke, Sie hatte einen kopieren-und-einfügen-Fehler in Main. Diese Zeile:
Nein, ich bin einfach wollte die gleichen Daten doppelt auf zwei Platten als test
Ok - aber unabhängig davon, daß unerreichte Klammer in der Main ist nicht dabei zu Fliegen 🙂
ist es, weil ich nahm code aus 🙂
Excel_FromDataTable(testingTable)
wird zweimal angezeigt, und in der folgenden Zeile, Sie haben eine unübertroffene schließende Klammer. Als ich die Bearbeitung selbst, aber ich dachte besser von Ihr seit ich weiß nicht, Ihre genaue Absicht.Nein, ich bin einfach wollte die gleichen Daten doppelt auf zwei Platten als test
Ok - aber unabhängig davon, daß unerreichte Klammer in der Main ist nicht dabei zu Fliegen 🙂
ist es, weil ich nahm code aus 🙂
InformationsquelleAutor | 2012-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Betrachten Sie diese
Hallo @user, sollte nicht die Arbeitsmappe wb per Referenz übergeben werden?
Ein Objekt muss nicht per Referenz übergeben werden, wenn es wird nur operiert, wie in diesem Fall, wenn ich mich verändert das Objekt und erwarten, dass die änderung beibehalten werden, indem der Anrufer, ja dann muss das Objekt per Referenz übergeben werden
mein schlechtes. Ich habe vergessen, dass man ein class-Objekt von Wert lediglich Kopien nur eine Referenz auf das gleiche Objekt, und nicht das ganze Objekt selbst. Danke für die Aufklärung.
Die Frage, wie kommen die Blätter werden in umgekehrter Reihenfolge von dem, was ich bin übergabe. D.h. die erste Datentabelle ist das Letzte Blatt?
InformationsquelleAutor swiftgp