Создание файлов расчета OpenOffice с использованием PHP

Я безуспешно пытался найти простой способ создания файлов вычислений OpenOffice.

Я пытался:

openTBS — кажется, работает запись XML и файла шаблона, но не может найти что-нибудь о том, как формат файла xml.

генератор Ods php. сервер я всегда получаю поврежденные файлы

автоматизатор Php — попробовал пример и получил файл sxw. я даже не знаю что это такое

ODS-PHP — нет документации, только один пример создания 4 ячеек

Все выглядит старым, заглохшим и недокументированным. Любое предложение?


person xzdead    schedule 22.01.2014    source источник
comment
Настоятельно рекомендуем PHPExcel, который, как я полагаю, также может читать/писать OpenOffice. с обилием документации - единственный недостаток, будьте готовы увеличить свой PHP memory_limit :)   -  person MackieeE    schedule 22.01.2014
comment
К сожалению, PHPExcel еще не записывает файлы Open/Libre Office Calc, хотя в настоящее время читает их... это находится в стадии разработки; но если я не смогу восстановить баланс между работой и личной жизнью (или кто-то еще не решит быть чрезвычайно щедрым со своим временем и усилиями), может пройти довольно много времени, прежде чем он сможет писать файлы .ods.   -  person Mark Baker    schedule 22.01.2014
comment
@MarkBaker Ах! Тогда извиняюсь перед вами обоими! xzdead за предоставление вам неверной информации; и вам Марк - я слишком быстро просмотрел страницу Github! Ну, я должен сказать, что вы разработали замечательную программу, которую я даже использую изо дня в день в компании, в которой работаю! (Так что большое спасибо!)   -  person MackieeE    schedule 23.01.2014
comment
Нет проблем @MackieeE, спасибо за ваше время. Я уже пробовал PHPExcel, потому что думал так же, как и вы. Решение: генерировать xls, а не ods :o(   -  person xzdead    schedule 23.01.2014


Ответы (2)


Я успешно использовал opentbs.

Вы можете создавать как файлы excel, так и файлы calc. Также приятно, что вы можете, так сказать, «повторно использовать» свою реализацию html.

Может быть, эта ветка поможет вам перейти на http://www.tinybutstrong.com/forum.php?thr=3069

Сначала сделайте версию html.. затем отредактируйте для calc/excel

person pernils    schedule 26.06.2014

Spout from Box меня вполне устраивает. Есть некоторые недостающие функции, но он прост в использовании, имеет свободный API и не имеет зависимостей (он поддерживает композитор, но вы можете использовать его автономно, а его график зависимостей имеет нулевую глубину ????).

Вот мой конвейер «массив объектов в ODS» с использованием Spout: (я не использую их рекомендуемый импорт 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();

person Guss    schedule 08.06.2020