2016-12-08 93 views
2

我已經通過E-Iceblue教程在c#中創建了excel組,但找不到選項以進行摺疊/展開上方摺疊行選項。在C#中,使用Spire.Xls,使用上面的摺疊/展開選項對excel表格行進行摺疊行

要組行,我用下面的代碼:

Worksheet sheet = workbook.Worksheets[0]; 

     sheet.GroupByRows(2, 9, true); 

但展開/摺疊圖標是摺疊的行下面的行旁邊,默認情況下。 我需要在摺疊行上方的行上使用此選項。 我知道這可以在Excel表中手動完成。在excel 2013,數據選項卡,大綱設置中,取消選中「彙總行下面的詳細信息」後,摺疊/展開圖標會在細節上方移動。

我的問題是,我們如何使用Spire.Xls在C#代碼中做到這一點?

回答

1

編輯可以使用Spire.Xls完成。在E-iceblue上找到了解決方案,Spire.Xls,forum。下面這行代碼可以完成這項工作。

sheet.PageSetup.IsSummaryRowBelow = false; 

如果有人想通過OpenXML做到這一點,請參考下面的原始答案。


不能使用Spire.Xls(在此答案的時間)來完成。 可以使用OpenXML完成。

這是E-iceblue,Spire.Xls,論壇link這個主題。正如論壇所提到的,這個功能可能會在未來的某個版本中出現。

對於其他人絆倒在本主題中,這可以通過使用使用以下代碼的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(); 
}