2017-10-12 43 views
0

我必須創建一個數據表的Excel文件,該數據表根據數據庫和包含多個數據透視表的工作表具有各自的數據透視圖。使用「exceldatatables」加入兩張不同的工作簿

「data.xlsx」包含一張包含所有新數據的工作表。

「graph.xlsx」包含具有舊數據的工作表和帶有數據透視表的工作表。

我的目標是讓「graph.xlsx」包含一張包含所有新數據的工作表和包含數據透視表的工作表。

我找到了一個完美的lib做到這一點:https://github.com/svrnm/exceldatatables

但我阻止對使用它,我就開「graph.xlsx」刪除其命名爲「香檳數據」表,然後添加一個新的名爲「brut data」的表使用「data.xlsx」中包含的新數據初始化。

要做到這一點,我從ExcelWorkbook.php中看到了這個函數。

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

但我不明白如何使用它。

回答

0

(我所提到的庫的作者)

有你需要採取兩個步驟,以實現自己的目標,首先是讀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併合並表。