亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在數據透視表上配置額外的數據透視列標題

在數據透視表上配置額外的數據透視列標題

C#
慕少森 2021-07-27 15:12:00
我正在使用 NReco PivotData 庫在日期字段上進行透視,以便日期在標題中水平顯示。這很有效,但是,我想添加日期來填補空白,以便結果更完整(默認情況下,庫僅顯示包含在記錄中的日期)。例如,如果我總共有 2 條記錄,第一條記錄是 01/01/2018,第二條記錄是 10/01/2018,那么我將不會有包含兩者之間所有日期的列。我已經通過為我的范圍中的每個日期添加空值的記錄來解決這個問題,但是,這會在結果的頂部添加一個空白行,這并不理想??傊?,我想為我的日期維度添加“虛擬”值,以便通過顯示沒有任何條目的日期列來獲得更完整的結果集。代碼using (var package = new ExcelPackage()){    var dimensionNames = new string[] { "Id", "Name", "Date", "Hours" };    var aggregator = new SumAggregatorFactory("Hours");    var rows = new Dictionary<string, object>()    {        { 1, "John Smith", new DateTime(2018, 1, 1), 5 },        { 2, "John Doe", new DateTime(2018, 1, 10), 10 }    };    var pivotData = new PivotData(dimensionNames, aggregator, rows);    var pivotTable = new PivotTable(new string[] { "Name" }, new string[] { "Date" }, pivotData);    var worksheet = package.Workbook.Worksheets.Add("Report");    var tableWriter = new PivotTableExcelWriter(worksheet);    tableWriter.Write(pivotTable);    package.SaveAs(...);}
查看完整描述

1 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

默認情況下,PivotData類在使用索引器訪問時為非退出維度鍵創建新數據點,您可以使用它來創建“空”日期:


for (int i=1; i<=10; i++) {

  // if aggregator for specified keys doesn't exist, it will be added

  var aggr = pivotData[1, "John Smith", new Date(2018, 1, i), 5];

}

(你必須使用真正的鍵尺寸除“日期”,如果你不希望在數據透視表中創建額外的行/列,您可以從第一個真正的數據點得到他們。object[] firstEntryKeys = pivotData.First().Key;)


此行為由PivotData.LazyAdd屬性控制,可以禁用。


查看完整回答
反對 回復 2021-07-31
  • 1 回答
  • 0 關注
  • 267 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號