本文目錄一覽:
- 1、php怎麼導出大量數據的Excel
- 2、PHP怎樣將查詢出來的數據導出成excel表格?
- 3、PHP如何將查詢出來的數據導出成excel表格(最好做一個按鈕)?
- 4、php 如何將查詢結果導出到Excel中
- 5、php搜索結果導出excel?
- 6、PHP導出100萬數據到excel
php怎麼導出大量數據的Excel
php導出大量數據到Excel,可以通過生成多個Excel文件,然後壓縮成壓縮包解決。
方案是:假如我們資料庫有10w條數據,每2000條數據生成一個Excel文件,這樣每次只要從資料庫里查詢出2000條數據即可,一定要分頁去查詢。
原因:主要是資料庫性能和寫文件性能。分頁查詢可以解決資料庫壓力的問題, 生成多個文件可以解決單個文件太大,後期維護Excel文件的問題。
要注意的:
1. 在導出邏輯文件開頭,一定要聲明 set_time_limit(0) ,防止腳本超時;
2. 每個文件生成後,適當的sleep一下,讓程序休息一下下;
3. 因為一次導出最後要將生成的多個Excel文件打包成一個壓縮包,所以要刪除掉生成的Excel文件,節省伺服器存儲空間;
下面是我實際工作中,寫的一個php導出大量數據到Excel的代碼,你可以參考一下:
PHP怎樣將查詢出來的數據導出成excel表格?
根據下列編碼程序可以。
1./*** 批量導出數據* @param $arr 從資料庫查詢出來,即要導出的數據* $name excel表歌名*/
2.function expExcel($arr,$name){ require_once ‘PHPExcel.php’;
3. //實例化 $objPHPExcel = new PHPExcel(); /*右鍵屬性所顯示的信息*/
4.$objPHPExcel-getProperties()-setCreator(“zxf”) // -setLastModifiedBy(“zxf”) //最後一 -setTitle(‘數據EXCEL導出’) //標題-setSubject(‘數據EXCEL導出’) //主題setDescription(‘導出數據’) //描setKeywords(“excel”) //標記setCategory(“result file”); //類別
5. //設置當前的表格 $objPHPExcel-setActiveSheetIndex(0);// 設置表格第一行顯示內容$objPHPExcel-getActiveSheet() -setCellValue(‘A1’, ‘業主姓名’) -setCellValue(‘B1’, ‘密碼’)-setCellValue(‘C1’, ‘手機號碼’ -setCellValue(‘D1’, ‘地址’)
6.//設置第一行為紅色字體 -getStyle(‘A1:D1’)-getFont()-getColor()-setARGB(PHPExcel_Style_Color::COLOR_RED);$key = 1; /*以下就是對處理Excel里的數據。
PHP如何將查詢出來的數據導出成excel表格(最好做一個按鈕)?
講的複雜了啊!\x0d\x0a你先在一個完整版的PHPExcel之後解壓,在「Examples」目錄下會找到一大堆例子,根據你的要求這個「01simple-download-xlsx.php」文件就可以了!\x0d\x0a註:你先保持「01simple-download-xlsx.php」文件所在的目錄位置不要變,測試好了,再改變名,移到別的地方,地方變了的話,文件里的 「require_once dirname(__FILE__) . ‘/../Classes/PHPExcel.php’;」的所在位置也要變!\x0d\x0a我們要改動代碼很少,如下:\x0d\x0a// Add some data\x0d\x0a$objPHPExcel-setActiveSheetIndex(0)\x0d\x0a-setCellValue(‘A1’, ‘Hello’)\x0d\x0a-setCellValue(‘B2’, ‘world!’)\x0d\x0a-setCellValue(‘C1’, ‘Hello’)\x0d\x0a-setCellValue(‘D2’, ‘world!’);\x0d\x0a\x0d\x0a// Miscellaneous glyphs, UTF-8\x0d\x0a$objPHPExcel-setActiveSheetIndex(0)\x0d\x0a-setCellValue(‘A4’, ‘Miscellaneous glyphs’)\x0d\x0a-setCellValue(‘A5’, ‘éàèùâêîôûëïüÿäöüç’);\x0d\x0a、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、\x0d\x0a直接用的我的替換\x0d\x0a$objPHPExcel-setActiveSheetIndex(0)//這個就是現實導出的表第一行,有幾列是根據你的那張表有幾列!\x0d\x0a-setCellValue(‘A1’, ‘單號’)\x0d\x0a-setCellValue(‘B1’, ‘標題’)\x0d\x0a-setCellValue(‘C1’, ‘內容’)\x0d\x0a-setCellValue(‘D1’, ‘序列’)\x0d\x0a-setCellValue(‘E1’, ‘數字’);\x0d\x0a//下面實現的就是建立資料庫連接,直接到表,你的連接資料庫、表、欄位應該與我的不一樣,你可以參考\x0d\x0a$conn=@mysql_connect(“localhost”,”root”,”root”) or die(“資料庫伺服器連接錯誤”.mysql_error());//連接mysql資料庫\x0d\x0amysql_select_db(“temp”,$conn) or die(“資料庫訪問錯誤”.mysql_error());//資料庫\x0d\x0amysql_query(“set character set gb2312”);\x0d\x0amysql_query(“set names gb2312”);\x0d\x0a\x0d\x0a$sqlgroups=”select * from test “;//查詢這一張表的條件\x0d\x0a$resultgroups=mysql_query($sqlgroups);\x0d\x0a$numrows=mysql_num_rows($resultgroups);\x0d\x0aif ($numrows0)\x0d\x0a{\x0d\x0a$count=1;\x0d\x0awhile($data=mysql_fetch_array($resultgroups))\x0d\x0a{\x0d\x0a$count+=1;\x0d\x0a$l1=”A”.”$count”;\x0d\x0a$l2=”B”.”$count”;\x0d\x0a$l3=”C”.”$count”;\x0d\x0a$l4=”D”.”$count”;\x0d\x0a$l5=”E”.”$count”;\x0d\x0a$objPHPExcel-setActiveSheetIndex(0) \x0d\x0a-setCellValue($l1, $data[‘id’])//這就是你要導出表的欄位、與對應的名稱\x0d\x0a-setCellValue($l2, $data[‘title’])\x0d\x0a-setCellValue($l3, $data[‘content’])\x0d\x0a-setCellValue($l4, $data[‘sn’])\x0d\x0a-setCellValue($l5, $data[‘num’]);\x0d\x0a}\x0d\x0a}
php 如何將查詢結果導出到Excel中
如果是oracle
sql
developer的話,在查詢結果哪兒,用右鍵,可以導出成excel的。
如果用pl/sql
developer、toad之類的,也可以將查詢結果導出成excel
pl/sql
developer還可以直接copy查詢結果,到excel中粘貼。
如果用navicat
for
oracle,可以使用導出的方法。
php搜索結果導出excel?
可以循環
$objPHPExcel-setActiveSheetIndex(0);
for($a=’A’,$b=1;$b=100;$b++){
$objPHPExcel-setCellValue($a.$b, ‘Hello’);
}
PHP導出100萬數據到excel
php導出數據excel有專門的庫,當導出少量數據的時候速度很快,但是當數據量大的時候就會存在伺服器內存不夠之類的。
所以在導出大量數據的時候就應該分頁查詢數據,避免伺服器宕機。正好PHP提供了fputcsv函數可以將數據寫入到csv文件中。
這樣我們就可以使用PHP對數據進行分頁查詢,再寫入到csv文件中。
原創文章,作者:GYIP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147305.html