久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

利用PHP_XLSXWriter代替PHPExcel的方法示例

PHPExcel是一個處理Excel,CVS文件的開源框架,但不幸的是PHPExcel官方已不再維護了這個項目了,官方團隊在github上又起了一個新項目,叫PhpSpreadsheet。那么這篇文章主要給大家介紹了關于利

前言

本文主要給大家介紹的是關于利用PHP_XLSXWriter代替PHPExcel的方法,分享出來供大家參考學習,下面話不多說,來一起看看詳細的介紹:

二者有何區別?

PHPExcel 是一個處理Excel,CVS文件的開源框架,它基于微軟的OpenXML標準和PHP語言??梢允褂盟鼇碜x取、寫入不同格式的電子表格,這也是PHP至今最通用的Excel處理工具,但是它有一個非常致命的缺點: 特別占內存,對大批量的表格數據幾乎會讓人累覺不愛,處理速度非常慢,但是它功能非常豐富,API非常多,所以在導出復雜格式的Excel表格時,你往往不得不使用它,真是讓人又愛又恨。

不幸的是,PHPExcel官方已不再維護了這個項目了,官方團隊在github上又起了一個新項目,叫PhpSpreadsheet,新項目使用了大量的php新特性,比如命名空間,PSR標準,性能也比PHPExcel高了不少,不過該項目至今(2017-07-12)還是開發狀態,最小穩定版還沒出來,估計bug會比較多,所以并不建議使用,下圖是項目遷移說明:

利用PHP_XLSXWriter代替PHPExcel的方法示例

相比于PHPExcel,PHP_XLSXWriter是一個小而強悍的Excel讀寫插件,它并沒有PHPExcel功能豐富,很多高級操作比如凍結表頭,并不具備,但是它導出速度非???,非常適合于數據量特別大,報表格式不是很復雜的導出需求,下圖是官方的速度和內存測試:

利用PHP_XLSXWriter代替PHPExcel的方法示例

PHP_XLSXWriter 如何使用?

下載

這是PHP_XLSXWriter的github地址,當然大家也可以通過本地下載,你可以點擊下載把它下載下來。解壓之后你可以看到,它的核心文件只有一個: xlswriter.class.php,examples目錄為代碼樣例目錄,里面有很多例子你可以參考。

利用PHP_XLSXWriter代替PHPExcel的方法示例

使用

對于日常中絕大部分的報表需求,PHP_XLSXWriter 是可以勝任的,下面通過一個例子來熟悉一下API的使用。

假設我們要導出下圖中的報表,并通過瀏覽器實現下載:

利用PHP_XLSXWriter代替PHPExcel的方法示例

代碼實現:

//writer 類
$writer = new XLSXWriter();
 //文件名
$filename = "example.xlsx";
//設置 header,用于瀏覽器下載
header('Content-disposition: attachment; filename="'.XLSXWriter::sanitize_filename($filename).'"');
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');

//導出的數據
$string = array (
 0 => 
 array (
 'payc_bill_time' => '2017-07-12 16:40:44',
 'payt_received_date' => '2017-07-12',
 'ci_name' => '租金',
 'payt_num' => 'YRZB(2012)A0047',
 'payt_scsr_name' => '李巧紅',
 'payt_received' => '300.00',
 'paytd_type' => '現金',
 'emp_name' => '鄭振標',
 ),
 1 => 
 array (
 'payc_bill_time' => '2017-07-12 16:39:55',
 'payt_received_date' => '2017-07-12',
 'ci_name' => '租金',
 'payt_num' => 'YRZB(2012)A0046',
 'payt_scsr_name' => '22222',
 'payt_received' => '45.00',
 'paytd_type' => '現金',
 'emp_name' => '鄭振標',
 )
 );
 //每列的標題頭
$title = array (
 0 => '開單時間',
 1 => '收款時間',
 2 => '開票項目',
 3 => '票據編號',
 4 => '客戶名稱',
 5 => '實收金額',
 6 => '收款方式',
 7 => '收款人',
);
//工作簿名稱
$sheet1 = 'sheet1';

//對每列指定數據類型,對應單元格的數據類型
foreach ($title as $key => $item){
 $col_style[] = $key ==5 ? 'price': 'string';
}

//設置列格式,suppress_row: 去掉會多出一行數據;widths: 指定每列寬度
$writer->writeSheetHeader($sheet1, $col_style, ['suppress_row'=>true,'widths'=>[20,20,20,20,20,20,20,20]] );
//寫入第二行的數據,順便指定樣式
$writer->writeSheetRow($sheet1, ['xxx財務報表'],
['height'=>32,'font-size'=>20,'font-style'=>'bold','halign'=>'center','valign'=>'center']);

/*設置標題頭,指定樣式*/
$styles1 = array( 'font'=>'宋體','font-size'=>10,'font-style'=>'bold', 'fill'=>'#eee',
'halign'=>'center', 'border'=>'left,right,top,bottom');
$writer->writeSheetRow($sheet1, $title,$styles1);
// 最后是數據,foreach寫入
foreach ($data as $value) {
 foreach ($value as $item) { $temp[] = $item;}
 $rows[] = $temp;
 unset($temp);
}
$styles2 = ['height'=>16];
foreach($rows as $row){
 $writer->writeSheetRow($sheet1, $row,$styles2);
}

//合并單元格,第一行的大標題需要合并單元格
$writer->markMergedCell($sheet1, $start_row=0, $start_col=0, $end_row=0, $end_col=7);
//輸出文檔
$writer->writeToStdOut();
exit(0);

上面的每行代碼都做了注釋,如果不懂得話可以去查看一下example文件夾中的代碼樣例以及官網主頁的文檔,不過文檔比較簡短;

跳坑指南:

自己在使用過程中也踩過一些坑,這里列一下,希望對你有幫助:

文件名與類名不對應

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP有序表查找之插值查找算法,簡單分析了插值查找算法的概念、原理并結合實例形式分析了php實現針對有序表插值查找的相關操作技巧,需要的朋友可以參考下
下面小編就為大家分享一篇ThinkPHP整合datatables實現服務端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP實現APP微信支付的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP實現的多維數組排序算法,結合實例形式對比分析了php針對多維數組及帶有鍵名的多維數組進行排序相關操作技巧與注意事項,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了php結合ajaxuploadfile實現無刷新文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本篇文章給大家詳細介紹了PHP開發接口使用RSA進行加密解密方法,對此有興趣的朋友可以學習下。
主站蜘蛛池模板: 国产99免费 | 亚洲男人天堂网 | 999久久久 | 国产在线精品一区二区三区 | 欧美日韩在线观看一区 | 国产一区二区中文字幕 | 奇米影视在线 | 久久久视频在线 | 请别相信他免费喜剧电影在线观看 | 涩涩视频大全 | 99精彩视频 | 依人成人 | 国产在线中文字幕 | 国产一级影片 | 国产精品一区二区在线 | 欧美精品在线免费观看 | 亚洲精品久久久久久久久久吃药 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 亚洲国产精品99久久久久久久久 | 久久99视频免费观看 | 亚洲高清在线免费观看 | 奇米久久久 | 美女一级a毛片免费观看97 | 99在线免费观看视频 | 国产欧美在线 | 欧美午夜在线 | 成人精品一区二区三区 | 日韩在线视频一区 | 久热免费| 国产精品日韩 | 久久久久久91 | 在线免费观看a级片 | 亚洲二区精品 | 日韩在线播放一区 | 一区二区视频在线观看 | 视频一区在线播放 | 亚洲视频精品 | 精品国产一区二区三区观看不卡 | 日韩精品一区二区三区高清免费 | 另类在线 | 精品99久久|