使用 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]
等等
我正在使用 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]
等等