这是我第一次使用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
错误的含义是什么?如何修改它以防止出现此错误消息?
但我不知道如何在[X]部分写出来。如何写它以获得预期的输出?
答案 0 :(得分:2)
看起来无法删除用于生成XLSX文件的默认临时文件夹。您可以通过检查C:\WINDOWS\TEMP/xlsx560f58d588ceb
上的权限来验证它。
要解决此问题,您可以手动修复临时文件夹(C:\WINDOWS\TEMP
)的权限,也可以使用其他临时文件夹,如下所示:https://github.com/box/spout#using-custom-temporary-folder
关于2),Spout没有直接的方法来做这个。 Spout不支持合并细胞。你唯一能做的就是:
| 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']]