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: 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

Schreibe einen Kommentar