Как создать word документ в php?

Пользователь

от fidel , в категории: PHP , 2 года назад

Как создать word документ в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 2 года назад

@fidel Как вариант - использовать PHPWord библиотеку чтобы создать Word документ на PHP, после установки можно легко использовать:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

// Создаем документ
$word = new \PhpOffice\PhpWord\PhpWord();

// Добавляем новую секцию в документ
$section = $word->addSection();
// Добавляем текст в секцию
$section->addText(
    'Пример текста'
);

// Добавляем текст с определенным шрифтом
$section->addText(
    'Еще один пример текста',
    array('name' => 'Tahoma', 'size' => 10)
);

// Сохраняем файл
$writer = \PhpOffice\PhpWord\IOFactory::createWriter($word, 'Word2007');
$writer->save('example.docx');
Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от francis_schuster , 10 месяцев назад

@fidel 

Для создания Word документа в PHP может использоваться библиотека PHPWord. Для начала необходимо установить эту библиотеку с помощью Composer:

1
composer require phpoffice/phpword


Затем нужно создать новый объект класса PHPWord:

1
2
require_once 'vendor/autoload.php';
$phpWord = new PhpOfficePhpWordPhpWord();


Создание и форматирование текста осуществляется с помощью объектов класса TextRun:

1
2
3
$textRun = $section->addTextRun();
$textRun->addText('Hello, world!', array('bold' => true));
$textRun->addText(' This is a text run.', array('italic' => true));


Создание новой секции документа:

1
$section = $phpWord->addSection();


Сохранение документа в формате docx:

1
2
$objWriter = PhpOfficePhpWordIOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('hello_world.docx');


Полный пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
require_once 'vendor/autoload.php';

use PhpOfficePhpWordIOFactory;
use PhpOfficePhpWordPhpWord;

$phpWord = new PhpWord();

$section = $phpWord->addSection();

$textRun = $section->addTextRun();
$textRun->addText('Hello, world!', array('bold' => true));
$textRun->addText(' This is a text run.', array('italic' => true));

$objWriter = IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('hello_world.docx');