caxlsx / axlsx Pivot Table 单独 sheet

caxlsx / axlsx Pivot Table on separate sheet

我正在尝试遵循这个例子:

https://github.com/caxlsx/caxlsx/blob/master/examples/pivot_table_example.md

此代码在我现有的工作簿导出中运行良好。

我正在尝试将数据透视表 table 添加到另一个 sheet 上的现有数据:

wb.add_worksheet(name: "Expenditures") do |sheet|
  ...  
end
   
wb.add_worksheet(name: "Pivot Table") do |sheet|
  
   sheet.add_pivot_table 'M4:M4', 'Expenditures!A1:L100' do |pivot_table|
       pivot_table.rows = ['Vendor', ID]
       pivot_table.columns = ['Month']
       pivot_table.data = [ref: 'Amount', num_fmt: 4]
       pivot_table.pages = ['Year']
  end
    
end

除了抛出这个错误:

undefined method `row' for nil:NilClass

如果我将它添加到同一个 sheet,它就可以正常工作。你不能引用另一个 sheet 作为枢轴 tables 吗?

您需要在块中设置 data_sheet 或直接使用 PivotTable.new 构造函数。这是一个使用 data_sheet= 的更新,假设您参考了名为 expenditures_sheet:

的“支出”sheet
sheet.add_pivot_table 'M4:M4', 'A1:L100' do |pivot_table|
  pivot_table.data_sheet = expenditures_sheet
  pivot_table.rows = ['Vendor', 'ID']
  pivot_table.columns = ['Month']
  pivot_table.data = [ref: 'Amount', num_fmt: 4]
  pivot_table.pages = ['Year']
end