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?