首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClosedXML轮廓

ClosedXML轮廓
EN

Stack Overflow用户
提问于 2014-09-10 03:10:54
回答 1查看 5.7K关注 0票数 2

我正在尝试使用OpenXML在导出的中创建一个组。

我的源数据表如下所示:

代码语言:javascript
复制
Row     State   Product Sales
1       NY      A       100
2       NY      A       200
3       NY      B       300
4       CA      A       100
5       CA      A       200
6       CA      B       300

我想按州创建一个大纲,然后在每个组上创建一个小计的产品

我试过了

代码语言:javascript
复制
 ws.Outline.SummaryVLocation = XLOutlineSummaryVLocation.Top;
 ws.Rows(1, 3).Group(); // Create an outline (level 2) for rows 1-4
 ws.Rows(4, 6).Group();

但这并没有给我想要的东西,我也看不出有什么办法把小计相加。

我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-11 09:20:30

您使用的文档中的代码示例要么已经过时,要么就是错了。

如果要对第2行至第4行进行分组,则需要使用代码ws.Rows(3, 4).Group(); (见图)。这与Excel本身是一致的,在单击group按钮之前,您必须只选择第3行和第4行才能获得相同的结果。

当您尝试将第1行到第3行分组时,就像在代码中一样,将它们都分组到第0行下,这会导致错误,因为没有行0。您可以使用XLOutlineSummaryVLocation属性在某种程度上控制这种行为。如果使用Bottom而不是top,则使用前两行对第2行至第4行进行分组:ws.Rows(2, 3).Group();

尽管如此,还说了两点:

  1. 您需要使用Excel行号,而不是列" row“中的数字。
  2. 所有这些分组和折叠仅用于显示目的。要总结销售数字,您必须使用Excel中的小计函数(在本例中,我觉得这是相当令人费解和没有帮助的),或者在C#中直接添加列和结果。

使用这段代码可以得到您想要的结果(见下图):

代码语言:javascript
复制
ws.Outline.SummaryVLocation = XLOutlineSummaryVLocation.Top;
ws.Cell(1, 5).SetValue("Product subtotals");
ws.Cell(1, 6).SetValue("State subtotals");

ws.Rows(3, 4).Group();                      // group rows 2 to 4 (state NY), outline level 1
ws.Cell(2, 6).SetFormulaA1("=SUM(D2:D4)");  // subtotal for all NY sales
ws.Row(3).Group();                          // group rows 2 and 3 (product A), outline level 2
ws.Cell(2, 5).SetFormulaA1("=SUM(D2:D3)");  // subtotal for all NY, product A sales
ws.Cell(4, 5).SetFormulaA1("=SUM(D4)");     // subtotal for all NY, product B sales

ws.Rows(6, 7).Group();                      // group rows 5 to 7 (state CA), outline level 1
ws.Row(6).Group();                          // group rows 5 and 6 (product A), outline level 2
ws.CollapseRows(2);                         // collapse group level 2 (products)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25756741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档