Ich muss eine Liste von Objekten in Excel-Tabelle als Tabelle schreiben, in der jede Spalte Objektattribute oder Werte darstellt. Für die folgende Methode, die Spaltennamen in einer separaten Liste und Datenobjekte in einer Liste übergibt, konnte ich die Daten wie unten angezeigt bekommen, aber trotzdem konnte ich die Spalten nicht richtig anzeigen lassen.Schreiben eines Excel mit geschlossenem XML - Hinzufügen von benutzerdefinierten Spaltennamen
Ich habe die folgende Dokumentation verwiesen, aber ich konnte keinen Weg finden, um die Titel richtig anzuzeigen. https://github.com/closedxml/closedxml/wiki/Inserting-Tables
-Code
public string CreateExcelFile<T>(IEnumerable<T> list, string sheetName, string headerTitle, List<string> titles, string fileName, string savedPath)
{
var wb = new XLWorkbook();
var ws = wb.Worksheets.Add(sheetName);
ws.Cell(1, 1).Value = headerTitle; // sets excel sheet header
var rangeTitle = ws.Range(3, 1, 3, titles.Count); // range for row 3, column 1 to row 3, column titles.Count
rangeTitle.AddToNamed("Titles");
// Need to add columns names with in rangeTitle
//rangeTitle.InsertData(titles);
// write data from row 4 onwards
if (list != null && list.Any())
{
ws.Cell(4, 1).InsertData(list);
}
else
{
ws.Cell(4, 1).Value = "No data to show";
}
// styles
var titlesStyle = wb.Style;
titlesStyle.Font.Bold = true;
titlesStyle.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
titlesStyle.Fill.BackgroundColor = XLColor.Amber;
// style titles row
wb.NamedRanges.NamedRange("Titles").Ranges.Style = titlesStyle;
ws.Columns().AdjustToContents();
var filePath = savedPath + string.Format("{0}.xlsx", fileName);
wb.SaveAs(filePath);
return filePath;
}
Output excel
Output Im Versuch zu bekommen - ich brauche Werte in Titel im Gelben Reihe hervorgehoben gespeichert zu bekommen.
Kann jemand helfen?