我使用OpenTBS生成一个动态行数和列,用于生成m矩阵。我需要为数据源指定一个非静态行数和列。
如何在模板中生成一个动态的列和行数(m ),以便OpenTBS作为数据源使用到图表中?
这是否可能,是否有解决办法,或者是否需要OpenTBS以外的其他工具?
更新-嵌入模板
+-----------------+------------------------------------------+
| | [c.key;block=td;parallel=tbs:table] |
+-----------------+------------------------------------------+
| [r.$;block=tr] | [r.[c.val;block=td]] |
+-----------------+------------------------------------------+
PHP代码
// -----------------
// 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]= $col;
}
$data = array();
for ($row=0; $row<=$nbr_row; $row++)
{
$record = array();
if ($row == 0)
{
for ($col=1; $col <= $nbr_col; $col++)
{
$record[$columns[$col]] = $col;
}
}
for ($col=1; $col <= $nbr_col; $col++)
{
$record[$columns[$col]] = 1;
}
$data[$row] = $record;
}
// Expanding columns
$TBS->MergeBlock('c',$columns);
// Merging rows
$TBS->MergeBlock('r',$data);
$TBS->Show();
发布于 2017-05-08 13:24:58
在OpenTBS中,动态行数非常简单。对于XLSX模板,只需在用MergeBlock定义的块上使用block=tbs:row
()即可。
对于XLSX,动态列数更难管理。这很困难,但并非不可能。对于HTML表,您可以使用合并列和行的技术。但是,这项技术假设您知道电子表格中合并列和行之前的实际行数(我指的是内部XML中的行数)。这是一个难点,因为当您使用Ms Excel编辑XLSX模板时,您不会真正看到保存在内部XML中的实际列和行。幸运的是,您可以使用快捷方式Ctrl选择当前工作表中的最后一个实际单元格。
如何将合并的结果使用到图表中是另一个值得提出的问题,因为这取决于您要做什么。
https://stackoverflow.com/questions/43837990
复制