使用 OpenTBS mergeField 方法导出原始数据

Exporting raw data with OpenTBS mergeField method

我正在使用 OpenTBS 将统计信息导出到 .ods 文件。 我希望能够在生成的文档中生成图表。 问题是导出的每条数据在生成的文档中都用单引号 (') 转义。我无法在不删除它的情况下生成图表。

有没有办法用 OpenTBS mergeField() 方法指定原始数据?

这里是代码的顶峰:

$model = __DIR__ . "/../../Resources/public/models/Stats/Stats_mensuelles_template.ods";

$targetDir = __DIR__ . self::Z2_DOCGEN_TARGETDIR;

$this->setDocumentName($document, $this->type);

// (...) fetching the data (...)


// each getComptage* method return an integer value
$sm = array(
    "date" => $statistique->getDateFin()->format('M Y'),
    "pn" => $statsCurrentMonth->getComptagePaliersNormaux(),
    "pe" => $statsCurrentMonth->getComptagePaliersExceptionnels(),
    "cu" => $statsCurrentMonth->getComptagePaliersUrgents(),
    "pb" => $statsCurrentMonth->getComptagePatchesBIRDe(),
);

//Chargement de la page principale
$this->tbsManager->LoadTemplate($model, OPENTBS_ALREADY_UTF8);
$this->tbsManager->MergeField('sm', $sm);
$this->tbsManager->Show(OPENTBS_FILE, $targetDir . $document->getNom());

.ods 模板中的单元格如下所示([sm.*] 和标签位于单独的单元格中):

Statistiques mensuelles [sm.date]
Palier normal             [sm.pn]
Palier exceptionnel               [sm.pe]
Palier urgent             [sm.cu]
Patch BIRDe               [sm.pb]
Autres paliers                [sm.div]

最后,这是生成的单元格示例

Palier normal             '30
Palier exceptionnel               '8
Palier urgent             '15
Patch BIRDe               '41
Autres paliers                '28

谢谢

我最终在 OpenTBS Documentation - section "create OpenOffice and Ms Office documents with PHP"

中找到了答案

填写时单引号在文档侧添加。而且它通常将每条数据都视为一个字符串,无论实际发送的是什么。

OpenTBS 可以通过在模板中明确指定字段类型来解决这个问题。

所以,如果我们采用我的模板,这就是我们处理第一个数字字段的方式:

[sm.pn;ope=tbs:num]

等等