4
我在C#中使用DocumentFormat.OpenXML。我如何隱藏特定列?
代碼的某些部分:如何使用C#在OpenXML電子表格中隱藏列?
using (SpreadsheetDocument sDocument = SpreadsheetDocument.Open(resultFileName, true))
{
WorkbookPart workbookPart = sDocument.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
var relId = workbookPart.GetIdOfPart(worksheetPart);
GenerateWorksheetPartContent(worksheetPart, data, templateSheet);
var columns = worksheetPart.Worksheet.Descendants<Column>(); <-- Empty
int[] colomnsToHide = new int[] { 3, 8, 16, 17, 18 };
foreach (int i in colomnsToHide)
{
columns[i].Hidden = true;
}
}
templateSheet - SheetData從XLSX模板。
要插入的數據 - 數據。
有什麼建議嗎?
你可能已經在腦海工作表中的每一列?我在Open XML SDK 2.0生產力工具中打開了我的模板文件,並使用了以下邏輯: <! - language:c# - > 'public Worksheet GenerateWorksheet() { Worksheet worksheet1 = new Worksheet(); .... 列columns1 = new Columns(); .... worksheet1.Append(columns1); .... return worksheet1; }' – Phoenix
爲了得到這個工作,我不得不將其插入後SheetFormatProperties對象: 'worksheetPart.Worksheet.InsertAfter(列,worksheetPart.Worksheet.SheetFormatProperties);' –
也不要忘記調用worksheetPart.Worksheet .Save()方法,如果文檔沒有啓用AutoSave。 – CSharper