OpenXMLフレームワークを使用してExcelスプレッドシートのデフォルトの列幅を設定しようとしています。その結果、ファイルが壊れてしまいました。ここで私は「のAppendChild」対使う「追加」しようとしていたExcelスプレッドシートの列プロパティの設定問題
エラーのスクリーンショットコード
private void initSpreadsheetDocument()
{
// Add a WorkbookPart to the spreadsheet document.
WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
workbookpart.Workbook = new Workbook();
var sheetData = new SheetData();
var properties = new SheetFormatProperties { DefaultColumnWidth = 25D };
Worksheet worksheet = new Worksheet();
worksheet.AppendChild(sheetData);
// here is line of code that corrupt file
// without it - file is being generated properly
worksheet.AppendChild(properties); ![enter image description here][1]
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = worksheet;
// Init sheets
sheetsStorage = new Sheets();
defaultSheet = new Sheet();
defaultSheet.Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart);
defaultSheet.SheetId = 1;
defaultSheet.Name = DEFAULT_SHEET_NAME;
sheetsStorage.AppendChild(defaultSheet);
spreadsheetDocument.WorkbookPart.Workbook.AppendChild(sheetsStorage);
spreadsheetDocument.WorkbookPart.Workbook.Save();
}
hereされているが、結果は同じ
は、誰もがそれをソートするかの視点を持っていましたでる?
提案を確認できませんでしたが、workheet.Append(プロパティ)を使用してみてください。そして、そのworksheet.Append(sheetData); 。この順番で。 – Shelest
私はこの解決策をチェックしました - プロパティを適用する注文は関係ありません。とにかく、お返事ありがとうございます –