Форум программистов, компьютерный форум, киберфорум
PHP: Фреймворки
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 18.01.2017
Сообщений: 207

как в phpword вставить в шаблон не простой текст, а целую таблицу, созданную в том же phpword?

02.06.2022, 01:44. Показов 1434. Ответов 0

Студворк — интернет-сервис помощи студентам
у меня есть рабочий пример кода, где в phpword создаётся новый файл с таблицей

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
require_once("vendor/autoload.php");
 
/* Start to develop here. Best regards https://php-download.com/ */
 
// Creating the new document...
$phpWord = new \PhpOffice\PhpWord\PhpWord();
 
 
// Adding an empty Section to the document...
$section = $phpWord->addSection();
 
// своя таблица
 
$fancyTableStyle = array('borderColor' => 'gray', 'borderSize' => 1, 'cellMargin' => 80,'cellSpacing'=>1); // стили для таблицы
$fancyTableFontStyle = array('size' => 10, 'bold' => true); // стили для заголовка таблицы (thead)
$myFontStyle = array('size' => 8, 'bold' => false, 'italic' => true); // стили для заголовка таблицы (thead)
$fancyTableStyleItalicRight = array('align' => 'right'); // стили для выполнено/не выполнено
 
$myTable = $section->addTable($fancyTableStyle);
// шапка
$myTable->addRow();
$myTable->addCell(1500, ['valign' => 'center'])->addText("Дата, время", $fancyTableFontStyle);
$myTable->addCell(7000, ['valign' => 'center'])->addText("Содержание сообщений в течение смены, подписи о сдаче и приемке смены смены", $fancyTableFontStyle);
$myTable->addCell(1500, ['valign' => 'center'])->addText("Визы, замечания", $fancyTableFontStyle);
 
// инфа
 
$myTableCellStyle = array('valign' => 'top'); // стили для всех ячеек таблицы
$curDate = ''; // дата/время по дефолту пустые
 
$myTable->addRow();
$myTable->addCell(1500, $myTableCellStyle)->addText("", $myFontStyle);
$myTable->addCell(7000, $myTableCellStyle)->addText("За время дежурства АО и ТН не было", $myFontStyle);
$myTable->addCell(1500, $myTableCellStyle)->addText("", $myFontStyle);
 
$footer = $section->addFooter();
$footer->addPreserveText('{PAGE} из {NUMPAGES}', null, array('align' => 'right'));
 
$file = 'Журнал от '.date('d.m.Y').'.docx';
header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename="' . $file . '"');
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$xmlWriter->save("php://output");
я решил его интегрировать в другой код, где в существующий файл подставляются значения. по моей задумке вместо одного из значений должна подставиться созданная таблица.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require_once($_SERVER['DOCUMENT_ROOT'] . '/phpword/vendor/autoload.php');
 
$document = new \PhpOffice\PhpWord\TemplateProcessor($_SERVER['DOCUMENT_ROOT'] . '/development_mr/word_table/template.docx');
 
$phpWord = new \PhpOffice\PhpWord\PhpWord();
 
$section = $phpWord->addSection();
 
$fancyTableStyle = array('borderColor' => 'gray', 'borderSize' => 1, 'cellMargin' => 80,'cellSpacing'=>1); // стили для таблицы
$fancyTableFontStyle = array('size' => 10, 'bold' => true); // стили для заголовка таблицы (thead)
$myFontStyle = array('size' => 8, 'bold' => false, 'italic' => true); // стили для заголовка таблицы (thead)
$fancyTableStyleItalicRight = array('align' => 'right'); // стили для выполнено/не выполнено
 
$myTable = $section->addTable($fancyTableStyle);
// шапка
$myTable->addRow();
$myTable->addCell(1500, ['valign' => 'center'])->addText("Дата, время", $fancyTableFontStyle);
$myTable->addCell(7000, ['valign' => 'center'])->addText("Содержание сообщений в течение смены, подписи о сдаче и приемке смены смены", $fancyTableFontStyle);
$myTable->addCell(1500, ['valign' => 'center'])->addText("Визы, замечания", $fancyTableFontStyle);
 
// инфа
 
$myTableCellStyle = array('valign' => 'top'); // стили для всех ячеек таблицы
$curDate = ''; // дата/время по дефолту пустые
 
$myTable->addRow();
$myTable->addCell(1500, $myTableCellStyle)->addText("", $myFontStyle);
$myTable->addCell(7000, $myTableCellStyle)->addText("За время дежурства АО и ТН не было", $myFontStyle);
$myTable->addCell(1500, $myTableCellStyle)->addText("", $myFontStyle);
 
$arResultDocOutfit = [];
$arResultDocOutfit['table'] = $section;
$arResultDocOutfit['company'] = $companyName;
$arResultDocOutfit['gendir'] = $companyGenDir;
 
$document->setValues($arResultDocOutfit);
$document->saveAs($_SERVER['DOCUMENT_ROOT'] . '/upload/outfitBlank/contract_.docx');
 
header('Location: /upload/outfitBlank/contract_.docx');
и ничего не подставляется. Как сделать правильно? Как альтернатива подойдёт способ таблицу в формате html перевести в подходящий формат и вставить в шаблон word.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.06.2022, 01:44
Ответы с готовыми решениями:

Вставить таблицу в шаблон средствами phpWord
Я делаю экспорт из php в Word с помощью библиотеки phpWord. В шаблоне Word проставлены метки ${disciplinIndex}, ${disciplinName} и так...

Вставить таблицу в шаблон средствами phpWord
Я делаю экспорт из php в Word с помощью библиотеки phpWord. В шаблоне Word проставлены метки ${disciplinIndex}, ${disciplinName} и так...

Вставить таблицу в шаблон средствами XML и phpWord
Я делаю экспорт из php в Word с помощью библиотеки phpWord. В шаблоне Word проставлены метки ${disciplinIndex}, ${disciplinName} и так...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.06.2022, 01:44
Помогаю со студенческими работами здесь

Не могу вставть таблицу в шаблон phpword
$table = new \PhpOffice\PhpWord\Element\Table(array('borderSize' => 12, 'borderColor' => 'green', 'width' => 6000 )); $table->addRow();...

Как в PHPWORD в шаблон загрузить изображение?
Помогите пожалуйста добавить изображение в шаблон используя phpword. Создал шаблон в ворде и заполняю его значениями передаваемыми...

Как вывести в цикле в шаблон PHPWord?
как вывести в шаблон, записи в цикле, на данный момент в шаблон выводится только одна строка, хотя цикл выводит 4 строки ...

Как вставить в html-страницу библиотеку PhpWord?
Здравствуйте! Подскажите, как вставить в ХТМЛ страницу Библиотеку PHPWORD ("http://phpword.codeplex.com/")? А то, если просто...

Как собрать таблицу средствами PHPWord?
Делаю экспорт в Word из php средствами библиотеки PHPWord. Очень понравилось решение с шаблоном и метками. Берется готовый документ Word, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru