2018年8月18日 星期六

php class ezTable的改良

ezTable是從 ezCalc改來的 https://utycx.wordpress.com/2012/02/04/%e7%94%a2%e7%94%9f%e5%a4%9a%e5%b7%a5%e4%bd%9c%e8%a1%a8%e7%9a%84-ezcalc/

使用了空白的calc檔案(ooo_ezcalc.ods) ,這個檔案是ooo 2.0建立的,但是到了LibreOffice 5.3就讀不出來了。

於是開始思考解決的辦法
最後決定使用tbszip.php和新的ods檔(ezcalc5.ods)來解決這個問題,一開始嘗試使用tbs和它的OpenTBS,但是用起來比較麻煩,後來看到同一人作品tbszip Download last version 2.16 ,發現好用才決定改用。
產生ods檔,就是產生zip檔,tbszip可以很輕易的讀取odt檔中的content.xml,修改後放回去供使用者些修改,程式碼精簡如下,其中maketabledata()是去產生新的資料,$head和$foot的取法和以前雷同。


$zip = new clsTbsZip();
$zip->Open(__DIR__.'/ezcalc5.ods');
$replace = $zip->FileRead('content.xml');

$tabledata = maketabledata();
$newtext = $head . $tabledata .$foot;
$zip->FileReplace('content.xml', $newtext, TBSZIP_STRING);
$zip->Flush(TBSZIP_DOWNLOAD, $filename.'.ods','application/vnd.oasis.opendocument.spreadsheet');
$zip->Close(); 



更改了X核心中的lib裡的 tbszip.php, ezcalc5.ods, class.eztable.php, sxs.stud_list.php

沒有留言:

張貼留言