Authon: viest [email protected]
# 依赖
sudo apt-get install -y zlib1g-dev
git clone https://github.com/jmcnamara/libxlsxwriter.git
cd libxlsxwriter && make && sudo make install
# Excel-Export
git clone https://github.com/viest/php-ext-excel-export.git
cd php-ext-excel-export
phpize && ./configure --with-php-config=/path/to/php-config
make && make install
# 添加 extension = xlswriter.so 到 ini 配置
# 依赖
brew install libxlsxwriter
# Excel-Export
git clone https://github.com/viest/php-ext-excel-export.git
cd php-ext-excel-export
phpize && ./configure --with-php-config=/path/to/php-config
make && make install
# 添加 extension = xlswriter.so 到 ini 配置
请预先搭建PHP编译环境,教程详见 php.net
cd PHP_BUILD_PATH/deps
git clone --recursive https://github.com/jmcnamara/MSVCLibXlsxWriter.git
要构建依赖库的DLL,打开LibXlsxWriterProj/LibXlsxWriter。在MS Visual Studio中使用sln项目,并使用"构建 ->构建解决方案"
菜单项构建解决方案。
在默认配置中,这将构建一个x64调试
LibXlsxWriter .lib和.dll,你也可以选择释放
版本构建,构建完成后,你可以在一下路径中找到对应的DLL
PHP_BUILD_PATH\deps\MSVCLibXlsxWriter\LibXlsxWriterProj\[x64|x86]\Debug
# or
PHP_BUILD_PATH\deps\MSVCLibXlsxWriter\LibXlsxWriterProj\[x64|x86]\Release
32\64位: 复制 .dll 文件到 c:\Windows\System*
最后添加系统环境变量LIB,指向DLL文件目录
cd PHP_PATH/ext
git clone https://github.com/viest/php-ext-excel-export.git
cd PHP_PATH
buildconf.bat
configure.bat --disable-all --enable-cli --with-xlswriter
nmake
$config = ['path' => '/home/viest'];
$excel = new \Vtiful\Kernel\Excel($config);
$filePath = $excel->fileName('tutorial01.xlsx')
->header(['Item', 'Cost'])
->data([
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
])
->output();
insertText(int $row, int $column, string|int|double $data[, string $format])
单元格所在行
单元格所在列
需要写入的内容
内容格式
$excel = new \Vtiful\Kernel\Excel($config);
$textFile = $excel->fileName("free.xlsx")
->header(['name', 'money']);
for ($index = 0; $index < 10; $index++) {
$textFile->insertText($index+1, 0, 'viest');
$textFile->insertText($index+1, 1, 10000, '#,##0');
}
$textFile->output();
insertFormula(int $row, int $column, string $formula)
单元格所在行
单元格所在列
公式
$excel = new \Vtiful\Kernel\Excel($config);
$freeFile = $excel->fileName("free.xlsx")
->header(['name', 'money']);
for($index = 1; $index < 10; $index++) {
$textFile->insertText($index, 0, 'viest');
$textFile->insertText($index, 1, 10);
}
$textFile->insertText(12, 0, "Total");
$textFile->insertFormula(12, 1, '=SUM(B2:B11)');
$freeFile->output();
insertImage(int $row, int $column, string $localImagePath)
单元格所在行
单元格所在列
图片路径
$excel = new \Vtiful\Kernel\Excel($config);
$freeFile = $excel->fileName("free.xlsx");
$freeFile->insertImage(5, 0, '/vagrant/ASW-G-66.jpg');
$freeFile->output();
autoFilter(string $scope);
过滤范围
$excel->fileName('test.xlsx')
->header(['name', 'age'])
->data($data)
->autoFilter('A1:B11')
->output();
mergeCells(string $scope, string $data);
单元格范围
数据
$excel->fileName("test.xlsx")
->mergeCells('A1:C1', 'Merge cells')
->output();
setColumn(resourch $format, string $range[, double $width]);
单元格样式
单元格范围
单元格宽度
$config = ['path' => './tests'];
$excel = new \Vtiful\Kernel\Excel($config);
$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();
$boldStyle = \Vtiful\Kernel\Format::bold($fileHandle);
$fileObject->header(['name', 'age'])
->data([['viest', 21]])
->setColumn($boldStyle, 'A:A', 200)
->output();
setRow(resourch $format, string $range[, double $height]);
单元格样式
单元格范围
单元格高度
$config = ['path' => './tests'];
$excel = new \Vtiful\Kernel\Excel($config);
$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();
$boldStyle = \Vtiful\Kernel\Format::bold($fileHandle);
$fileObject->header(['name', 'age'])
->data([['viest', 21]])
->setRow($boldStyle, 'A1')
->output();
最大内存使用量 = 最大一行的数据占用量
constMemory(string $fileName);
```php $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config);
$fileObject = $excel->constMemory('tutorial01.xlsx'); $fileHandle = $fileObject->getHandle();
$boldStyle = \Vtiful\Kernel\Format::bold($fileHandle);
$fileObject->header(['name', 'age'])
->data([['viest', 21]])
->setRow($boldStyle, 'A1')
->output();```