OpenTBS - стратегия для динамического числа строк, генерации столбцов в шаблоне Excel (используется для данных диаграммы)

Я использую OpenTBS для генерации динамического числа строк и столбцов для генерации матрицы m x n. Мне нужно указать нестатическое количество строк и столбцов для источника данных.

Как мне создать динамическое число столбцов и строк (m x n) в шаблоне для 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();

1 ответ

Динамический номер строки очень прост с OpenTBS. Для шаблона XLSX вам просто нужно использовать MergeBlock() для блока, определенного с помощью block=tbs:row,

Динамическое количество столбцов сложнее управлять для XLSX. Это сложно, но не невозможно. Вы можете использовать технику слияния столбцов, а затем строк, как для таблицы HTML. Но этот технический прием предполагает, что вы знаете фактическое количество строк (я имею в виду внутренний XML) в электронной таблице, прежде чем объединять столбцы и строки. И это трудный момент, потому что, когда вы редактируете шаблон XLSX в Ms Excel, вы на самом деле не видите, какие фактические столбцы и строки сохраняются во внутреннем XML. К счастью, вы можете использовать ярлык [Ctrl][End], который выберет последнюю фактическую ячейку в текущем листе.

Как использовать объединенный результат в диаграмме - это еще один момент, который заслуживает другого вопроса Stackru, потому что это зависит от того, что вы пытаетесь сделать.

Другие вопросы по тегам