Exportieren von DataTable nach Excel mit Open Xml SDK in c #

Entschuldigung für mein Englisch bitte. Ich bin neu in Open XML SDK. Mein Programm kann einige Daten und DataTable in eine Excel-Datei (Vorlage) exportieren. In der Vorlage füge ich die Daten in einige Platzhalter ein. Es funktioniert sehr gut, aber ich muss auch eine DataTable einfügen ... Mein Beispielcode:

using (Stream OutStream = new MemoryStream())
{
    // read teamplate
    using (var fileStream = File.OpenRead(templatePath))
        fileStream.CopyTo(OutStream);

    // exporting
    Exporting(OutStream);

    // to start
    OutStream.Seek(0L, SeekOrigin.Begin);

    // out
    using (var resultFile = File.Create(resultPath))
        OutStream.CopyTo(resultFile);

Nächste Methode zum Exportieren

private void Exporting(Stream template)
{
    using (var workbook = SpreadsheetDocument.Open(template, true, new OpenSettings                          { AutoSave = true }))
    {
        // Replace shared strings
        SharedStringTablePart sharedStringsPart = workbook.WorkbookPart.SharedStringTablePart;
        IEnumerable<Text> sharedStringTextElements = sharedStringsPart.SharedStringTable.Descendants<Text>();

        DoReplace(sharedStringTextElements);
        // Replace inline strings
        IEnumerable<WorksheetPart> worksheetParts = workbook.GetPartsOfType<WorksheetPart>();

        foreach (var worksheet in worksheetParts)
        {
            DoReplace(worksheet.Worksheet.Descendants<Text>());
        }

        int z = 40;
        foreach (System.Data.DataRow row in ExcelWorkXLSX.ToOut.Rows)
        {
            for (int i = 0; i < row.ItemArray.Count(); i++)
            { 
                ExcelWorkXLSX.InsertText(workbook, row.ItemArray.ElementAt(i).ToString(), getColumnName(i), Convert.ToUInt32(z)); }
                z++;
            }
        } 

    }
}

Aber dieses Fragment zur Ausgabe von DataTable slooooooooooooooooooowwwwwww ...

Wie kann ich DataTable schnell und wirklich nach Excel exportieren?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage