在C#中,使用Spire.Xls,将具有折叠/折叠选项的excel工作表行分组

我已经通过E-Iceblue教程在c#中创buildexcel组,但找不到折叠行之上的折叠/展开选项。

为了对行进行分组,我使用了下面的代码:

Worksheet sheet = workbook.Worksheets[0]; sheet.GroupByRows(2, 9, true); 

但是默认情况下,展开/折叠图标位于折叠行下面的行旁边。 我需要在折叠行上方的行上使用此选项。 我知道这可以在Excel表中手动完成。 在Excel 2013,数据选项卡,大纲设置中,取消选中“汇总行下面的详细信息”后,折叠/展开图标移到细节上方。

我的问题是,我们如何使用Spire.Xls在C#代码中做到这一点?

编辑可以使用Spire.Xls完成。 在E-iceblue,Spire.Xls, 论坛上find解决scheme。 下面这行代码完成了这项工作。

 sheet.PageSetup.IsSummaryRowBelow = false; 

如果有人想通过OpenXML做到这一点,请参考下面的原始答案。


不能使用Spire.Xls完成 (在这个答案的时候)。 可以使用OpenXML完成。

这里是E-iceblue,Spire.Xls,这个主题的论坛链接 。 正如论坛所提到的,这个function可能会在未来的版本中出现。

对于任何其他人而言,这个问题可以通过使用下面的代码使用OpenXML来完成(假设其余的Excel表单代码是使用Spire.Xls完成的)

 Workbook ReportWorkbook = new Workbook(); //Spire.Xls code here //Save file ReportWorkbook.SaveToFile("myExcel.xlsx", ExcelVersion.Version2010); //Open the excel using OpenXML using (DocumentFormat.OpenXml.Packaging.SpreadsheetDocument oXmlSheet = DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.Open("myExcel.xlsx", true)) { var oXmlWorkbook = oXmlSheet.WorkbookPart.Workbook; //Get the sheet property object for the first sheet var sp = oXmlWorkbook.WorkbookPart.WorksheetParts.ToList()[0].Worksheet.SheetProperties; //Initialize outline properties sp.OutlineProperties = new DocumentFormat.OpenXml.Spreadsheet.OutlineProperties(); //Update sheet outline properties so that, //the option to expand/collapse row groups is shown beside the row above the grouped rows. sp.OutlineProperties.SummaryBelow = false; //Save file oXmlWorkbook.Save(); }