ubuntu安装xlsxwriter扩展
1、下载安装包
https://pecl.php.net/package/xlswriter #例如选择下载1.3.6版本
2、解压下载包
tar -zxvf xlswriter-1.3.6.tgz
3、进入文件夹,编译
cd xlswriter-1.3.6
phpize
./configure --with-php-config=/usr/local/php7.1/bin/php-config
make&&make install
4、在php.ini文件增加 extension=xlswriter.so
它支持以下功能:
一、写入
● 100%兼容的 Excel XLSX 文件
● 完整的 Excel 格式
● 合并单元格
● 定义工作表名称
● 过滤器
● 图表
● 数据验证和下拉列表
● 工作表 PNG/JPEG 图像
● 用于写入大文件的内存优化模式
● 适用于 Linux,FreeBSD,OpenBSD,OS X,Windows
● 编译为 32 位和 64 位
● FreeBSD 许可证
● 唯一的依赖是 zlib
二、读取
● 完整读取数据
● 光标读取数据
● 按数据类型读取
1.2.8 新特性
1、新增日期写入$config = [
'path' => './tests'
];
$fileObject = new \Vtiful\Kernel\Excel($config);
$fileObject = $fileObject->fileName('tutorial.xlsx');
$filePath = $fileObject->header(['date'])
->insertDate(1, 0, time(), 'mmm d yyyy hh:mm AM/PM')
->output();
2、新增自定义单元格数据类型读取$config = [
'path' => './tests',
];
$fileObject = new \Vtiful\Kernel\Excel($config);
$fileObject->openFile('tutorial.xlsx')
->openSheet();
var_dump($fileObject->nextRow([
\Vtiful\Kernel\Excel::TYPE_STRING,
\Vtiful\Kernel\Excel::TYPE_TIMESTAMP,
]));
基准测试
测试环境:Macbook Pro 13 inch
Intel Core i5
16GB 2133MHz LPDDR3 Memory
128GB SSD Storage.
导出
两种内存模式,导出 100W 行数据,单行 27 列,每个单元格 19 个中文字符
● 常规模式:耗时 29S,内存占用 2083MB;
● 固定内存模式:耗时 52S, 内存占用 <1MB;
读取
读取 100W 行数据,每行 1 列,单元格数据为 int
● 全量读取:耗时 3S, 内存占用 558MB;
● 游标读取:耗时 2.8S, 内存占用 <1MB;