Я впервые использую библиотеку Box / Spout. Я использую сервер WAMP.
Мой вопрос заключается в следующем:
require_once('./spout-master/src/Spout/Autoloader/autoload.php');
use Box\Spout\Writer\WriterFactory;
use Box\Spout\Common\Type;
$filePath = 'test.xlsx';
$writer = WriterFactory::create(Type::XLSX);
$writer->openToFile($filePath);
[X]
$writer->addRow(['a'], $style);
$writer->close();
(1)
Когда я запускаю код выше, я получаю следующее сообщение об ошибке:
Warning: rmdir(C:\WINDOWS\TEMP/xlsx560f58d588ceb): Permission denied in
C:\wamp\www\1300.revenue.com.my\public_html\spoutmaster\src\Spout\Common\Helper\FileSystemHelper.php on line 113
Что означает ошибка, и как мне ее изменить, чтобы появилось это сообщение об ошибке?
(2) Я хочу получить ожидаемый результат, как показано ниже:
Но я не знал, как написать это на [X] части. Как написать это, чтобы получить ожидаемый результат?
Похоже, временная папка по умолчанию, используемая для создания файла XLSX, не может быть удалена. Вы можете проверить это, проверив разрешения на C:\WINDOWS\TEMP/xlsx560f58d588ceb
,
Чтобы решить эту проблему, вы можете вручную исправить разрешения для временной папки (C:\WINDOWS\TEMP
) или используйте другую временную папку, как указано здесь: https://github.com/box/spout#using-custom-temporary-folder
Что касается 2), нет простого способа сделать это с носиком. Носик не поддерживает слияние клеток. Единственное, что вы можете сделать, это:
| 1 | 2 | | 3 | |
|---|---|---|---|---|
| | A | B | A | B |
|---|---|---|---|---|
Или в качестве альтернативы (если это имеет больше смысла):
| 1 | 2 | 2 | 3 | 3 |
|---|---|---|---|---|
| 1 | A | B | A | B |
|---|---|---|---|---|
В любом случае вам придется отформатировать строки, как показано выше: [[1,2,'',3',''], ['', 'A','B','A','B']]
или же [[1,2,2,3,3], [1, 'A','B','A','B']]
Других решений пока нет …