PHP 將大量資料匯出到 Excel 的方法
可以通過設定 PHP 的執行時間和記憶體限制來阻止錯誤發生,但仍然不能確保匯出完成。
set_time_limit(0);
ini_set("memory_limit","512M");
要徹底解決這個問題可以將資料分批匯出成 CSV 格式的檔案,這種格式簡單匯出快,並且也能用到 Excel 中。
<?php // 不限制指令碼執行時間以確保匯出完成 set_time_limit(0); // 輸出Excel檔案頭,可把user.csv換成你要的檔名 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="amazon_product_quantity.csv"'); header('Cache-Control: max-age=0'); // 從資料庫中獲取資料,為了節省記憶體,不要把資料一次性讀到記憶體,從控制代碼中一行一行讀即可 $sql = 'select * from amazon_product_quantity'; $stmt = mysql_query($sql); // 開啟PHP檔案控制代碼,php://output 表示直接輸出到瀏覽器 $fp = fopen('php://output', 'a'); // 輸出Excel列名資訊 $head = array('code', 'sub_code', 'sp_code', 'quantity'); foreach ($head as $i => $v) { // CSV的Excel支援GBK編碼,一定要轉換,否則亂碼 $head[$i] = iconv('utf-8', 'gb2312', $v); } // 將資料通過fputcsv寫到檔案控制代碼 fputcsv($fp, $head); // 計數器 $cnt = 0; // 每隔$limit行,重新整理一下輸出buffer,不要太大,也不要太小 $limit = 100000; // 逐行取出資料,不浪費記憶體 while ($row = mysql_fetch_array($stmt,MYSQL_ASSOC)) { $cnt ++; if ($limit == $cnt) { //重新整理一下輸出buffer,防止由於資料過多造成問題 ob_flush(); flush(); $cnt = 0; } foreach ($row as $i => $v) { $row[$i] = iconv('utf-8', 'gb2312', $v); } fputcsv($fp, $row); } ?>
相關推薦
PHP 將大量資料匯出到 Excel 的方法
資料量很大時(5萬條以上),用 PHPExcel 匯出 xls 將十分緩慢且佔用很大記憶體,最終造成執行超時或記憶體不足。可以通過設定 PHP 的執行時間和記憶體限制來阻止錯誤發生,但仍然不能確保匯出完成。 set_
【python Excel】如何使用python將大量資料匯出到Excel中的小技巧之二
最近對python的openpyxl 升級到了__version__ = '2.5.4',發現原先的程式碼不能使用,各種報錯之後,然後重新了寫的版本,故分享給各位同仁。如有錯誤,敬請賜教。# coding:utf-8 """ File Name: Excel.py Func
java批量檔案打包成壓縮成zip下載和大量資料匯出excel時的處理方法
對於我們來說,java匯出資料成excel或其他資料檔案,或者下載資源是開發中的家常便飯, 但是在匯出的時候,如果點選一個按鈕匯出幾百萬條資料,如果不作處理的話很可能會出現一系列的問題. 這裡介紹打包成zip壓縮包下載 針對大量資料匯出excel, 這裡有幾種
C#也能動態生成Word文件並填充資料, 匯出EXCEL 方法
public string CreateWordFile(string CheckedInfo) ...{ string message = ""; try ...{ Ob
NET使用NPOI元件將資料匯出Excel-通用方法 【推薦】
一、Excel匯入及匯出問題產生: 從接觸.net到現在一直在維護一個DataTable匯出到Excel的類,時不時還會維護一個匯入類。以下是時不時就會出現的問題: 匯出問題: 如果是asp.net,你得在伺服器端裝Office,幾百M呢,還得及時更新它,以防漏洞,還得設定許可權允許ASP.n
PHP資料匯出excel表的外掛與運用
外掛下載在我的這裡有我已經上傳了,自己下載,遇到問題可以在下方留言, 1、包放在 ThinkPHP -> Library -> Vendor; 2、前端:程式碼 <div class="btn-group" style="float: left; mar
PHPExcel之將獲取到的資料 匯出excel
tp3.2(注意:project\ThinkPHP\Library\Org\Util\PHPExcel 引用方法: use Org\Util; ) public function export_nj()
PHP資料匯出Excel
需要將php資料匯出Exel表格中,可以用PHPExcel,但是也有更快的方法,但是會出現些小問題 比如: /* *處理Excel匯出 *@param $datas array 設定表格資料 *@param $titlename string 設定head *@param
js 實現純前端將資料匯出excel。chome瀏覽器 親測有效。
有了新的需求 所以就瞭解下怎麼用js 直接匯出excel文件。 html程式碼 <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" cont
一個php檔案就可以把資料庫的資料匯出Excel表格
資料庫內容太多,複製貼上太麻煩?那就用程式碼實現把,把程式碼寫好了,匯出還不容易嗎,訪問即可匯出。 excel.php <?php error_reporting(E_ALL ^ E_DEPRECATED); $localhost = '資料庫地址'; $dbnam
JS 將Table資料匯出到Excel表
通過JavaScript方法將table中的資料匯出在excel表中,使用方便,可以直接瀏覽器直接下載所需要的excel表,一般適用於後臺管理的匯出資料需求。 使用方法 1.對table標籤設定id,例如:id=”ta” 2.點選按鈕呼叫 <but
如何將table表中的資料匯出excel表
所用技術:Mybatis+Springmvc+Spring 例子: @RequestMapping(value = "/sbExport") public void sbcscxInquiry
js 實現純前端將資料匯出excel兩種方式,親測有效
由於專案需要,需要在不呼叫後臺介面的情況下,將json資料匯出到excel表格,參考了好多資料以及很多大佬寫的部落格終於實現,相容chrome沒問題,其他還沒有測試過,這邊介紹兩種實現方式,並附上程式碼和gif動圖,博主不才還望輕噴方法一將table標籤,包括tr、td等對j
php匯出excel方法
方法一: //直接用頭部資訊輸出excel格式檔案,內容以表格形式展示。 $filename='orderexcel'; header("Content-type: application/vnd.ms-excel; charset=gbk"); head
ThinkPHP將資料匯出Excel表中 4種姿勢呼叫Event事件
<?php namespace Home\Event; class ExportExcelEvent{ /** * @desc 將資料匯出到Excel中 * @param $data array 設定表格資料 * @param $titlename strin
利用DevExpress將DataTable資料匯出到Excel
方法:根據DataTable列名動態建立GridControl,然後利用GridView匯出Excel,同時還可以匯出其他形式檔案。 using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraEditors; us
JS及POI將頁面資料匯出EXCLE檔案的幾種方法
JS實現的三種方法如下: 1、js檔案:exportExcel.js //匯出方法1:把表格中的內容提取出來,利用IE的另存為.csv的格式。 function getXlsFromTbl(inTblId, inTblContainerId, title, rownumb
如何將mysql資料匯出成excel
方法一 SELECT ... FROM ... WHERE ... INTO OUTFILE 'file.csv' FIELDS TERMINATED BY ',' 非常簡單的方法,但很不靈活。需要考慮mysql使用者對資料夾的訪問許可權問題,由於伺服器往往是由運維人員控
excel匯出之大量資料-匯出壓縮包
匯出幾萬的資料,放在一個excel檔案可能會超行,而且很多資料放在快取佔用了大量的java記憶體,肯定會溢位,那麼分成幾個excel然後打包再下載就好多了 /** * 匯出專案所有資料 * @param request * @param response *
將資料庫資料入excel中併發送郵件
我們有個政府專案,程式碼和資料庫都在政府那邊,我就開了一個後門,每天定時將資料庫資料發到我們這邊來,然後定時把這個檔案再刪除掉,在中秋這一天專案經理給我打電話問我說資料庫資料的情況,並且讓我們這邊一個開發人員幫忙統計增量是多少,我就萌生了一個想發,過節都不讓人過好,還想著公司的事情,於是