php導出數據excel有專門的庫,當導出少量數據的時候速度很快,但是當數據量大的時候就會存在服務器內存不夠之類的。
“真誠服務,讓網絡創造價值”是我們的服務理念,創新互聯團隊10多年如一日始終堅持在網站建設領域,為客戶提供優質服。不管你處于什么行業,助你輕松跨入“互聯網+”時代,PC網站+手機網站+公眾號+小程序開發。
所以在導出大量數據的時候就應該分頁查詢數據,避免服務器宕機。正好PHP提供了fputcsv函數可以將數據寫入到csv文件中。
這樣我們就可以使用PHP對數據進行分頁查詢,再寫入到csv文件中。
不帶格式的:
1、 直接寫csv文件。
2、COM調用adodb操作excel讀取
想要帶格式的標準xls文件:
請用COM調用adodb讀取,然后調用excel.application格式化。
其他的方法就是扯淡,別給我說
1、phpexcel,那資源消耗只適合玩單機,兼容性也不夠!
2、pear的可以帶格式輸出,但兼容性很差,經常打不開
3、xml方式,制作模板 比較費時。
總結:不帶格式,就用csv最簡單
想帶格式就用adodb+excel.application來操作,(注意:excel 格式化很慢,adodb導出很快,帶格式寫excel就是個悲劇!)
在使用PhpMyAdmin的時候經常用到數據的導入和導出(Export/Import),但是在導入大數據的時候由于php上傳文件的限制和腳本響應時間的限制,導致phpMyAdmin無法導入大數據。很多時候都是由于文件過大,從本地瀏覽上傳導入,容易中斷失敗,有沒有更好的方法呢?
方法:
在phpMyAdmin的目錄下,找到根目錄的config.inc.php文件,
打開config.inc.php文件,查找$cfg['UploadDir'],這個參數就是設定導入文件存放的目錄,這里把值設定為:ImportSQLFile。
在phpMyAdmin目錄下,建立以ImportSQLFile命名的文件夾,
把我們需要導入的數據文件,放到ImportSQLFile文件夾下面,非常簡單,
登入phpMyAdmin,選擇需要導入的數據,點擊導航條上面的“導入”按鈕,
選中“從網站服務器上傳文件夾ImportSQLFile/中選擇:”選項,并需要導入的數據文件,
最后點擊“執行”,即可導入成功。
注意事項
如果在config.inc.php文件,沒有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。
1 $fp = fopen('php://output', 'a');
2
3 // 輸出Excel列名信息
4 $head = array("郵件");
5 foreach ($head as $i = $v) {
6 // CSV的Excel支持GBK編碼,一定要轉換,否則亂碼
7 $head[$i] = iconv('utf-8', 'gbk', $v);
8 }
9
10 // 將數據通過fputcsv寫到文件句柄
11 fputcsv($fp, $head);
12
13 // 計數器
14 $cnt = 0;
15 // 每隔$limit行,刷新一下輸出buffer,不要太大,也不要太小
16 $limit = 100000;
17
18 // 逐行取出數據,不浪費內存
19 $count = count($email);
20
21 for($t=0;$t$count;$t++) {
22
23 $cnt ++;
24 if ($limit == $cnt) { //刷新一下輸出buffer,防止由于數據過多造成問題
25 ob_flush();
26 flush();
27 $cnt = 0;
28 }
29 $row[] = $email[$t];
30 foreach ($row as $i = $v) {
31 $row[$i] = iconv('utf-8', 'gbk', $v);
32 }
33 fputcsv($fp, $row);
34 unset($row);
35 }
php導出大量數據的Excel:
PHP從數據庫分多次讀取100萬行記錄,和分多次將100萬行寫入文本文件都沒問題
Excel可以支持100萬行記錄,Excel 2003最大支持65536行,從2007版開始支持104萬行了,目前2007的盜版應該比較普及了-_-! 問清楚客戶是什么版本。
要導出excel的理由是非常充分和正確的,應該繼續堅持。業務人員最熟悉的就是Excel,實在不熟悉現學現用也比別的快。只是要注意,當數據量達到10萬行這個級別時,Excel的公式填充將會非常非常慢,如果再有LOOKUP()公式,基本上十分鐘內處理CPU滿載進程管理器殺不掉的狀態,這時候其實xampp + phpmyadmin是一個易用性和性能都最平衡的選擇
PHPExcel輸出的是Excel XML格式,有個XML頭和尾,中間是數據Body,需要將100萬行都賦值給一個數組才可以調用PHPExcel-write(),這容易導致PHP執行超時或者內存超限,不妨調整一下php.ini配置,把超時時間和內存限制都改到很大
如果是輸出csv格式,那就太簡單了,你的問題可能是沒給字段內容加引號,加上引號再調用fputcsv試試?其實fputcsv做的事情特別簡單,你甚至可以不管它,自己把CSV文件的每一行拼接好了之后用file_put_contents寫入
分享文章:php大量數據導出怎么做,php導出大量數據到excel
文章源于:http://vcdvsql.cn/article22/hshocc.html
成都網站建設公司_創新互聯,為您提供手機網站建設、品牌網站建設、外貿網站建設、建站公司、移動網站建設、動態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯