如何使用OpenTBS正确填充PowerPoint模板的嵌入式工作表,其中工作表嵌入在PowerPoint演示文稿中?
我使用了子文件,但嵌入式工作表保留了输入标记,没有替换值。
Excel模板,可以作为独立的xls文件正确合并,但不能嵌入到演示文稿中(PPTX)。
+------------------------------+---------------------------------+
| | [c.key;block=tbs:cell] |
+------------------------------+---------------------------------+
| [r.#;block=tbs:row] | [cell.val;block=tbs:cell] |
+------------------------------+---------------------------------+
PHP合并代码
$template = 'riskwaterfalltemplate.pptm';
$TBS->LoadTemplate($template.'#ppt/embeddings/Microsoft_Excel_Worksheet2.xlsx', OPENTBS_ALREADY_UTF8);
// -----------------
// Output the result
// -----------------
$nbr_row = 5;
$nbr_col = 5;
// List of column's names
$columns = array();
for ($col=1; $col <= $nbr_col; $col++)
{
$columns[$col]['key'] = $col;
}
$data = array();
$record = array();
for ($col=1; $col <= $nbr_col; $col++)
{
$record[$col]['val'] = 1;
}
for ($row=0; $row < $nbr_row; $row++)
{
$data[$row] = $record;
}
// Expanding columns
$TBS->MergeBlock('c',$columns);
//Expanding Cells
$TBS->MergeBlock('cell', $record);
// Merging rows
$TBS->MergeBlock('r',$data);
$TBS->Show();
调试输出
* OPENTBS DEBUG MODE: if the star, (*) on the left before the word OPENTBS, is not the very first character of this page, then your
merged Document will be corrupted when you use the OPENTBS_DOWNLOAD option. If there is a PHP error message, then you have to fix it.
If they are blank spaces, line beaks, or other unexpected characters, then you have to check your code in order to avoid them.
------------------------------
INFORMATION
------------------------------
* Debug command: OPENTBS_DEBUG_XML_CURRENT
* OpenTBS version: 1.9.9
* TinyButStrong version: 3.10.1
* PHP version: 5.6.25YES
* Opened document: riskwaterfalltemplate.pptm
* Activated features for document type: openxml/pptx
* Deleted files in the archive: none
* Added files in the archive: none
* Modified files in the archive:
- ppt/embeddings/Microsoft_Excel_Worksheet2.xlsx
------------------------------
File merged with OpenTBS: ppt/embeddings/Microsoft_Excel_Worksheet2.xlsx
答案 0 :(得分:0)
如果要合并嵌入式XLSX以便在PPTX演示文稿中修改图表,则无法使用。
在Word和Ms Ms PowerPoint中,附加到图表的嵌入式XLSX不包含图表的真实数据。它是一个简单的副本,可帮助用户使用Ms Excel编辑数据。真实数据存储在与图表相关的XML子文件中。
如果要编辑图表,请使用命令OPENTBS_CHART。
如果您确实要合并嵌入的XLSX文件,则代码无法正常工作,因为子文件ppt/embeddings/Microsoft_Excel_Worksheet2.xlsx
不是XML文件,而是二进制文件。因此,TBS无法直接合并任何内容。
解决方案是:
$TBS->LoadTemplate('my_presentation.pptx')
,ppt/embeddings/Microsoft_Excel_Worksheet2.xlsx
$TBS->PlugIn(OPENTBS_SELECT_FILE, $SubFile)
子文件作为当前子文件加载
$handle = tmpfile(); fwrite($handle, $TBS->Source);
$TBS2->LoadTemplate($handle);
$TBS2->Show(OPENTBS_STRING);
$TBS->Source = $TBS2->Source;
$TBS->Show(...);