【问题标题】:Is It Possible To Generate Or Clone Pivot Tables Using PhpExcel Library?是否可以使用 PhpExcel 库生成或克隆数据透视表?
【发布时间】:2019-09-20 13:24:04
【问题描述】:

最近我使用phpExcel 库在 cakephp 中生成 excel 格式的报告。除了数据透视表,一切都运行良好。

我正在使用主 excel 表(包含数据透视表)来克隆/生成其他 excel 表。在新生成的工作表中,其他信息看起来不错,但没有生成数据透视表(仅显示标题上的名称。没有过滤器选项)。这是我正在使用的代码。

        $filename = WWW_ROOT."files/master_report_template/compliance_workflow_master_template.xlsx";
        $reportFileName = WWW_ROOT."files/documents/reports/compliance_workflow_template.xlsx";
        $this->PhpExcel->loadWorksheet($filename); 
        $this->PhpExcel->getActiveSheet()->setCellValue('B1',$this->request->data['fromDate']);
        $this->PhpExcel->getActiveSheet()->setCellValue('B2',$this->request->data['toDate']);
        $this->PhpExcel->getActiveSheet()->setCellValue('B3',date('D-M-y'));
        $row=6;
        foreach($repostData as $rows)
        {
            $col = 0;
            foreach($rows as $key =>$value)
            {   
                $this->PhpExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow($col, $row, $value);
                $col++;
            }
            $row++;
        }
        $this->PhpExcel->save($reportFileName);
        $this->PhpExcel->output(); 

我认为生成的 excel 表将是 Master excel 表的克隆,但两者都不相同(由于数据透视表)。有没有好的教程或文档来生成数据透视表?

【问题讨论】:

  • github 上有一个用于数据透视表的 PR,但它需要一些额外的工作才能发布,因为带有样式的数据透视表将无法保存,它只有在定义的数据透视表中没有样式时才有效
  • @MarkBaker 用户 vlasvlasvlas 对“github 上数据透视表 PR”的链接感兴趣(但不能自己发表评论)。
  • 它是PR #226:但是,它仅适用于 OfficeOpenXML (.xlsx) 文件,并且如果在数据透视表中应用了任何样式,它将不起作用(正如我之前所说)

标签: php cakephp phpexcel


【解决方案1】:

虽然这是一个老问题,但我想给出一个答案:几个月前我遇到了同样的问题,最后决定我需要自己实现(所以这是自我广告......)

这个解决方案远非完美 - 因为我可能是唯一使用它的人 - 但它正在做你所描述的:将原始数据写入一张“主文件”,允许你创建报告:

https://github.com/svrnm/exceldatatables

【讨论】:

  • 太棒了,这帮了大忙。小建议,如果保存的电子表格在打开时不会自动计算公式。这可以很容易地解决。我正在向您发送拉取请求,希望您能接受。
  • 感谢您的建议,我会尽快调查:-)
  • 我应该告诉你我测试过的所有几个不同的 php 电子表格库,这是唯一一个有效的。赞一个。但我应该说这是一个非常基本的库,仅适用于这种情况。
猜你喜欢
  • 1970-01-01
  • 2022-01-03
  • 2016-07-22
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
  • 2013-06-17
相关资源
最近更新 更多