作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 EPPlus 工具包 3.1 版在工作表中创建了 Excel 数据透视表。我能够在行字段上对结果表进行排序,但希望能够在数据字段上进行排序。例如,我从这里下载了 3.1 的源代码:
EEPlus 3.1 Source Code
它有一个名为 CreatePivotTable() 的单元测试。它包含一个“数据”选项卡,如下所示:
var ws = _pck.Workbook.Worksheets.Add("Data");
ws.Cells["K1"].Value = "Item";
ws.Cells["L1"].Value = "Category";
ws.Cells["M1"].Value = "Stock";
ws.Cells["N1"].Value = "Price";
ws.Cells["O1"].Value = "Date for grouping";
...
var pt = wsPivot1.PivotTables.Add(wsPivot1.Cells["A1"], ws.Cells["K1:N11"], "Pivottable1");
pt.GrandTotalCaption = "Total amount";
pt.RowFields.Add(pt.Fields[1]);
pt.RowFields.Add(pt.Fields[0]);
pt.DataFields.Add(pt.Fields[3]);
pt.DataFields.Add(pt.Fields[2]);
pt.DataFields[0].Function = DataFieldFunctions.Product;
pt.DataOnRows = false;
pt.Fields[0].Sort = eSortType.Descending;
pt.Fields[2].Sort = eSortType.Descending;
//or
pt.DataFields[0].Field.Sort = eSortType.Ascending;
最佳答案
我面临同样的问题并找到了解决方案。如果有人正在搜索它,希望它会有所帮助:)
var rowField = pivotTable.RowFields.Add(pivotTable.Fields[rowFieldName]);
// or var rowField = pivotTable.Fields[rowFieldName]; if rowField is already added
var dataField = pivotTable.DataFields.Add(pivotTable.Fields[dataFieldName]);
rowField.SetAutoSort(dataField, eSortType.Ascending);
rowField.Items.Refresh();
引用:
https://epplussoftware.com/en/Developers/SortingRangesAndTables
关于c# - EPPlus 在 DataField 上排序数据透视表,而不仅仅是 RowField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295921/
我是一名优秀的程序员,十分优秀!