Box / Spout问题

时间:2015-10-03 04:48:38

标签: php xlsx

这是我第一次使用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)我想做出如下预期输出:

enter image description here

但我不知道如何在[X]部分写出来。如何写它以获得预期的输出?

1 个答案:

答案 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']]