0

有什么方法可以让 TBS 在单元格需要为数字时自动选择(ope=xlsxNum)?或者是否可以使用 if 或 when 进行操作?

4

1 回答 1

0

这是一个应该有效的提示和技巧。

难点在于,在 MergeBlock 的情况下,“ope=xlsxNum”等格式化参数会在数据注入之前进行处理。这是出于性能考虑。所以我们将合并数据两次:一次用于为格式化准备 TBS 字段,第二次用于使用 MergeField() 而不是 MergeBlock() 实际注入数据。

下面是一个 PHP 数组的数据示例:

$data = array(
    array('name'=>"Nom",    'type'=>'STR', 'value'=>'Jack');
    array('name'=>"Stock",  'type'=>'NUM', 'value'=>1305);
    array('name'=>"Value",  'type'=>'NUM', 'value'=>1.5498888);
);

将以下代码段放入单元格中:

[b2.[b1.$;block=c].value;[b1.type;if '[val]'='NUM';then 'ope=xlsxNum'; else '']]

在 PHP 方面:

$TBS->MergeBlock('b1', $data); // prepare TBS fields with corresponding formating
$TBS->MergeField('b2', $data); // merge TBS fields with corresponding data

'b1' 合并后,模板变为:

[b2.0.value;] | [b2.0.value;ope=xlsxNum] | [b2.0.value;ope=xlsxNum]

'b2' 合并后,模板变为:

Jack | 1305 | 1.5498888
于 2013-06-01T22:02:49.360 回答