生成excel 把數據庫的數據導入到excel就行了,教你個簡單的寫法
成都創(chuàng)新互聯(lián)是一家專業(yè)提供赤城企業(yè)網站建設,專注與成都做網站、成都網站設計、HTML5建站、小程序制作等業(yè)務。10年已為赤城眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=test.xls");
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
?
\n結尾的是換行 \T是下一個單元格,直接查詢輸出就行
根據下列編碼程序可以。
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', '業(yè)主姓名')?-setCellValue('B1', '密碼')-setCellValue('C1', '手機號碼'? -setCellValue('D1', '地址')
6.//設置第一行為紅色字體?-getStyle('A1:D1')-getFont()-getColor()-setARGB(PHPExcel_Style_Color::COLOR_RED);$key = 1;?/*以下就是對處理Excel里的數據。
php導出數據excel有專門的庫,當導出少量數據的時候速度很快,但是當數據量大的時候就會存在服務器內存不夠之類的。
所以在導出大量數據的時候就應該分頁查詢數據,避免服務器宕機。正好PHP提供了fputcsv函數可以將數據寫入到csv文件中。
這樣我們就可以使用PHP對數據進行分頁查詢,再寫入到csv文件中。
請參考 PHPExcel 這個開源項目,用來導出數據到excel表格,項目的Examples 文件夾有大量的實例可供參考
php 把數據導出到excel表格有多種方法,比如使用 phpExcel 等,以下代碼是直接通過 header 生成 excel 文件的代碼示例:
?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=xls_region.xls");
$cfg_dbhost?=?'localhost';
$cfg_dbname?=?'testdb';
$cfg_dbuser?=?'root';
$cfg_dbpwd?=?'root';
$cfg_db_language?=?'utf8';
//?END?配置
//鏈接數據庫
$link?=?mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);
mysql_select_db($cfg_dbname);
//選擇編碼
mysql_query("set?names?".$cfg_db_language);
//users表
$sql?=?"desc?users";
$res?=?mysql_query($sql);
echo?"tabletr";
//導出表頭(也就是表中擁有的字段)
while($row?=?mysql_fetch_array($res)){
$t_field[]?=?$row['Field'];?//Field中的F要大寫,否則沒有結果
echo?"th".$row['Field']."/th";
}
echo?"/tr";
//導出100條數據
$sql?=?"select?*?from?users?limit?100";
$res?=?mysql_query($sql);
while($row?=?mysql_fetch_array($res)){
echo?"tr";
foreach($t_field?as?$f_key){
echo?"td".$row[$f_key]."/td";
}
echo?"/tr";
}
echo?"/table";
?
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 }