使用了空白的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
沒有留言:
張貼留言