excel
PHP 通过生成 XML 或者 HTML 从而转成 EXCEl,解决了其他生成 EXCEL 的扩展内存过大的问题,但是 XML 模式支持多表格不支持图片,HTML 模式支持 HTML 标签(也就是支持图片)但是不支持多表格,其他没什么区别
说明:支持两种模式:XML、HTML,默认 XML,两种模式不同:
XML:不支持插入图片,支持多工作表;HTML:支持插入图片(直接使用如果需要对单元格进行操作:
$fileFullName = Yii::$app->runtimePath.'/excel.xls'; $headers = [['value' => '姓名', 'styleId' => 's500'], ['value' => '电话', 'styleId' => 's55'], ['value' => '学习成绩', 'mergeAcross' => 2, 'mergeDown' => 1, 'styleId' => 's55']]; $data = [ [], ['', ['value' => '超链接', 'styleId' => 's41', 'href' => 'http://www.baidu.com'], '数学', '语文', '英语', '总成绩'], ['小崔', '176', ['value' => 88, 'type' => 1, 'styleId' => 's51'], ['value' => 80, 'type' => 1], ['value' => 78.5, 'type' => 1], ['value' => 0, 'type' => 1, 'formula' => '=RC[-3]+RC[-2]+RC[-1]']], ['flyu', '193', ['value' => 50, 'type' => 1, 'styleId' => 's52'], ['value' => 66, 'type' => 1, 'styleId' => 's53'], ['value' => 70, 'type' => 1, 'styleId' => 's54']], ['aa', '134', ['value' => 35, 'type' => 1, 'styleId' => 's56'], ['value' => 99, 'type' => 1, 'styleId' => 's57'], ['value' => 10, 'type' => 1, 'styleId' => 's58']], ]; // XML 新增样式 $style = <<<EOF <Style ss:ID="s500" ss:Name="红色字体"> <Font ss:Color="#FF0000" ss:Italic="1" ss:Bold="1"/> <Alignment ss:Horizontal="Center"/> </Style> EOF; $excel = new Excel($fileFullName, ['fontName' => 'Yuanti SC Regular', 'style' => $style]); $excel->createSheet('Sheet1', ['column' => [['index' => 1, 'width' => 101.65], ['index' => 5, 'width' => 144.1]]]); $excel->addRow($headers); foreach ($data as $item){ $excel->addRow($item); } $excel->done();
对于需要多表同时操作的
// 表 1 作为主表和上面一样 $headers = ['姓名1', '电话1']; $excel = new Excel($fileFullName); $excel->createSheet('表1'); $excel->addRow($headers); $data = [['小崔', '176']]; foreach ($data as $item){ $excel->addRow($item); } // 但是下面就不一样了 $excel->doneSheet(); // 补充主表未完成的结构(如果先写一张表再写一张不需要这样) $excel2 = new Excel($fileFullName.'_tmp', ['isStart' => false]); // isStart 必须 $excel2->createSheet('表2'); $excel2->addRow($headers); foreach ($data as $item){ $excel2->addRow($item); } $excel->write($excel2->read()); // 当两张表都完成的时候合并 $excel2->del(); // 释放资源 // 最终完成 $excel->done();
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。