本文目錄一覽:
- 1、PHP如何導出Excel文件
- 2、怎麼將php數據導出excel
- 3、php怎麼導出大量數據的Excel
- 4、PHP怎樣將查詢出來的數據導出成excel表格?
- 5、PHP如何將查詢出來的數據導出成excel表格(最好做一個按鈕)?
PHP如何導出Excel文件
昨天項目里有個新需求,客戶希望把一些數據能導出成為Excel表格,剛開始用PHP原生輸入Excel表格,發現效果不是很理想,於是找到一個比較著名的庫:PHPExcel。下面是一個簡單的demo,分享給大家,希望可以幫到有同樣需求的朋友。
1.百度:phpexcel,結果如圖所示,點擊第一個結果;
PHP導出Excel,PHP輸入Excel
2.進入官網後,找到右邊的download按鈕,下載,下載完成的是一個壓縮文件,解壓放到你的項目目錄里,根據個人情況而定;
PHP導出Excel,PHP輸入Excel
PHP導出Excel,PHP輸入Excel
3.因為這裡給大家做演示,所以建了一個測試文件,有點基礎的都能明白是怎麼回事,下面進入代碼;
PHP導出Excel,PHP輸入Excel
4.
//引入PHPExcel庫文件(路徑根據自己情況)
include ‘./phpexcel/Classes/PHPExcel.php’;
//創建對象
$excel = new PHPExcel();
//Excel表格式,這裡簡略寫了8列
$letter = array(‘A’,’B’,’C’,’D’,’E’,’F’,’F’,’G’);
//表頭數組
$tableheader = array(‘學號’,’姓名’,’性別’,’年齡’,’班級’);
//填充表頭信息
for($i = 0;$i count($tableheader);$i++) {
$excel-getActiveSheet()-setCellValue(“$letter[$i]1″,”$tableheader[$i]”);
}
PHP導出Excel,PHP輸入Excel
5.
//表格數組
$data = array(
array(‘1′,’小王’,’男’,’20’,’100′),
array(‘2′,’小李’,’男’,’20’,’101′),
array(‘3′,’小張’,’女’,’20’,’102′),
array(‘4′,’小趙’,’女’,’20’,’103′)
);
//填充表格信息
for ($i = 2;$i = count($data) + 1;$i++) {
$j = 0;
foreach ($data[$i – 2] as $key=$value) {
$excel-getActiveSheet()-setCellValue(“$letter[$j]$i”,”$value”);
$j++;
}
}
PHP導出Excel,PHP輸入Excel
6.
//創建Excel輸入對象
$write = new PHPExcel_Writer_Excel5($excel);
header(“Pragma: public”);
header(“Expires: 0”);
header(“Cache-Control:must-revalidate, post-check=0, pre-check=0”);
header(“Content-Type:application/force-download”);
header(“Content-Type:application/vnd.ms-execl”);
header(“Content-Type:application/octet-stream”);
header(“Content-Type:application/download”);;
header(‘Content-Disposition:attachment;filename=”testdata.xls”‘);
header(“Content-Transfer-Encoding:binary”);
$write-save(‘php://output’);
PHP導出Excel,PHP輸入Excel
7.打開頁面,刷新的時候會彈出對話框,讓你選擇文件保存路徑和文件名稱,我直接放在了桌面上,如圖所示;
PHP導出Excel,PHP輸入Excel
PHP導出Excel,PHP輸入Excel
8.打開表格後,數據和格式跟代碼中的一致,說明PHP導出的Excel是正確的。如果出現錯誤,檢查一下你的表格數組和數據數組吧。
PHP導出Excel,PHP輸入Excel
怎麼將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怎麼導出大量數據的Excel
簡介:可以利用工具軟體導出成Excel文件
工具原料:Apache+php+mysql網站運行環境,phpMyAdmin v4.6.2
下載phpMyAdmin v4.6.2軟體後解壓放在網站根目錄
用root用戶和密碼登入phpMyAdmin,在左邊欄點擊要導出的資料庫,然後點擊要導出的數據表,最後點擊導出如圖所示。
進入導出頁面後如圖按圖中紅色標註的操作
另外還要注意選擇的是要保存的文件的字符集:如圖所示才能保證保存出來的文件不會出現亂碼
最後點擊執行按鈕,OK.
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}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/197319.html