Ich versuche, die Breite einiger Excel-Spalten zu ändern. Ich habe alles versucht, aber wir halten leere Excel-Dokumente bekommen, meine Excel-Datei funktioniert ohne diesen Zusatz fein:OpenXML Benutzerdefinierte Spaltenbreite funktioniert nicht
Columns columns = new Columns();
columns.Append(new Column() { Min = 1, Max = 3, Width = 20, CustomWidth = true });
columns.Append(new Column() { Min = 4, Max = 4, Width = 30, CustomWidth = true });
wsPart.Worksheet.Append(columns);
Aber sobald ich hinzufügen diese like this user suggested, muß ich meine Excel-Datei reparieren, und es wird leer. Ich erhalte diesen Fehler: "Ersetzter Teil: /xl/worksheets/sheet.xml Teil mit XML-Fehler. Ladefehler. Zeile 1, Spalte 0. ". Und die 'reparierte' Datei ist leer.
Mein Code ist im Grunde das gleiche wie das von der MSDN example
ich viele verschiedene Möglichkeiten zum Ändern der Spaltenbreite versucht haben, so dass ich denke, das Problem liegt woanders. Ich kann nicht herausfinden, was falsch ist.
EDIT: Voll Code
_document = SpreadsheetDocument.Create(newFileName, SpreadsheetDocumentType.Workbook);
_workbookPart = _document.AddWorkbookPart();
_workbookPart.Workbook = new Workbook();
WorksheetPart worksheetPart = _workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetViews(new SheetView { WorkbookViewId = 0, ShowGridLines = new BooleanValue(false) }), new SheetData());
_document.WorkbookPart.Workbook.AppendChild(new Sheets());
Sheet sheet = new Sheet { Id = _document.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sheet1" };
_workbookPart.Workbook.Sheets.Append(sheet);
WorkbookStylesPart stylesPart = _workbookPart.AddNewPart<WorkbookStylesPart>();
stylesPart.Stylesheet = CreateStylesheet();
stylesPart.Stylesheet.Save();
Columns columns = new Columns();
columns.Append(new Column() { Min = 1, Max = 3, Width = 20, CustomWidth = true });
columns.Append(new Column() { Min = 4, Max = 4, Width = 30, CustomWidth = true });
worksheetPart.Worksheet.Append(columns);
_sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
Sie müssen das Blatt speichern, nachdem Sie die Spaltenbreite geändert haben. – rach
Ich habe das getan, hat nicht geholfen – Litrico
Können Sie bitte alle Ihren Code posten? Das OpenXml-Schema definiert eine Reihenfolge für die Elemente - ich nehme an, Sie fügen nur die 'Spalten' an der falschen Stelle relativ zu anderen Elementen hinzu ... – petelids