5

我一直在尝试找到一种简单的方法来创建 OpenOffice calc 文件,但没有成功。

我努力了:

openTBS - 似乎可以编写 xml 和模板文件,但找不到有关 xml 文件格式的任何信息。

Ods php generator - 我尝试了这个,因为它提供了清晰的示例,但是当我将文件复制到我的服务器时,我总是得到损坏的文件

Php doc writer - 尝试了一个示例并获得了一个 sxw 文件。我什至不知道那是什么

ODS-PHP - 没有文档,只有一个用于创建 4 个单元的示例

一切看起来都很陈旧,停滞不前且无证。¿ 有什么建议吗?

4

2 回答 2

1

我已经成功使用了opentbs。

您可以生成 excel 和 calc 文件。可以这么说,您可以“重用”您的 html 实现也很好。

也许这个线程可以让你去http://www.tinybutstrong.com/forum.php?thr=3069

先做 html 版本.. 然后编辑 calc/excel

于 2014-06-26T13:59:01.070 回答
1

来自 Box 的 Spout对我来说效果很好。有一些缺失的功能,但它易于使用,具有流畅的 API,并且没有依赖项(它支持 composer,但您可以独立使用它,它的依赖关系图深度为零)。

这是我使用 Spout 的“ODS 对象数组”管道:(我没有使用他们推荐的use导入,因为所有这些代码都适合一个更大的文件,我不想污染而且$factory模式对我来说看起来更干净)

$factory = 'Box\Spout\Writer\Common\Creator\WriterEntityFactory';
$factory::createODSWriter()
    ->openToBrowser('filename.ods')
    ->addRow($factory::createRow([
        $factory::createCell(__('Heading 1')),
        $factory::createCell(__('Heading 2')),
        $factory::createCell(__('Heading 3')),
    ]))
    ->addRows(array_map(function($row) use ($factory) { 
        return $factory::createRow([
            $factory::createCell($row->first_val),
            $factory::createCell($row->second_val),
            $factory::createCell($row->third_val),
        ]);
    }, loadDataFromSomewhere()))
    ->close();

于 2020-06-08T11:55:53.380 回答