0

我正在使用 OpenTBS 生成动态数量的行和列来生成 mxn 矩阵。我需要为数据源指定非静态的行数和列数。

如何在模板中生成动态列数和行数 (mxn) 以供 OpenTBS 用作图表中的数据源?

这是否可能,是否有解决方法,或者这是否需要 OpenTBS 以外的其他工具?

更新 - 嵌入式 Excel 模板

+-----------------+------------------------------------------+
|                 |  [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();
4

1 回答 1

0

使用 OpenTBS 动态行数非常简单。对于 XLSX 模板,您只需在使用block=tbs:row.

对于 XLSX,动态列数更难管理。这很困难,但并非不可能。您可以使用合并列和行的技术,就像HTML 表格一样。但是这项技术假设您在合并列和行之前知道电子表格中的实际行数(我的意思是在内部 XML 中)。这就是难点,因为当您使用 Ms Excel 编辑 XLSX 模板时,您并没有真正看到内部 XML 中保存的实际列和行。幸运的是,您可以使用快捷键 [Ctrl][End],它将选择当前工作表中的最后一个实际单元格。

如何将合并的结果用于图表是值得另一个 Stackoverflow 问题的另一点,因为这取决于您要做什么。

于 2017-05-08T21:24:58.083 回答