繁体   English   中英

使用“ exceldatatables”连接不同工作簿的两张纸

[英]use “exceldatatables” to join two sheets of a different workbook

我必须创建一个Excel文件,该文件的数据表将根据数据库而有所不同,并且该表包含多个具有自己的数据透视图的数据透视表。

“ data.xlsx”包含具有所有新数据的工作表。

“ graph.xlsx”包含具有旧数据的工作表和具有数据透视表的工作表。

我的目标是使“ graph.xlsx”包含一个包含所有新数据的表和一个包含PivotTables的表。

我找到了一个完美的库来做到这一点: https : //github.com/svrnm/exceldatatables

但是我禁止使用它,我将打开“ graph.xlsx”,删除其名为“ brut data”的工作表,然后添加一个新的名为“ brut data”的工作表,并使用“ data.xlsx”中包含的新数据进行初始化。

为此,我从ExcelWorkbook.php看到了这个库的一个类。

    public function addWorksheet(ExcelWorksheet $worksheet, $id = null, $name = null)

但是我不知道如何使用它。

(我是上述库的作者)

要实现目标,您需要执行两个步骤,第一步是读取data.xlsx。 第二步是将数据写入graph.xlsx。 该库正在解决第二步:

    require_once('../vendor/autoload.php');
    $dataTable = new Svrnm\ExcelDataTables\ExcelDataTable();
    $in = 'graph.xlsx';
    $out = 'out.xlsx';
    $data = /* ... step 1 ... */ 
    $dataTable->showHeaders()->addRows($data)->attachToFile($in, $out);

对于步骤1,您可以利用PHPExcel 我还没有测试过,但是类似这样:

$r = PHPExcel_IOFactory::createReader('Excel2007');
$data = $r->load($filename)->getActiveSheet()->toArray(null, true, true);

还有另一种选择:您可以解开graph.xlsx和data.xlsx并合并工作表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM