導航:首頁 > 編程語言 > php導出excel中文

php導出excel中文

發布時間:2022-09-25 11:35:56

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腳本文件的編碼用notepad++修改為ANSI(windows下的編碼格式)

資料庫查詢時先使用mysqli查詢set names utf8

接著iconv函數將編碼由utf8轉換為gbk.excel文件導出中文則不會亂碼

③ php excel reader2.21導出excel時中文出現亂碼如何解決

全場都使用UTF-8編碼,一般不會出問題的

④ php導出數據到excel 格式設置

$name = iconv("utf-8","gbk",'二級學院列表');;
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$name.xls");

//第三行的 name.xls這個xls可以自己改,不過大數據的導出建議使用專業的類,如phpexcel.

⑤ 如何使用PHP導出csv和excel文件

(一)phpexcel文件導出:
步驟1,引入文件require APPPATH.'/libraries/PHPExcel.PHP';
步驟2, 實例化PHPEXCEL對象 $objPHPExcel=new PHPExcel();
步驟3, 設置表頭 $column = array('A','B','C'); $line = array('詞語','頻次','詞性');
//填充表頭信息
for($i = 0;$i < count($tableheader_all);$i++) {
$objPHPExcel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");
//上一行中"$letter[$i]1"表示第「1」行第「$i」列
}
步驟4, 填充數據
for ($i = 2;$i <= count($data) + 1;$i++) {//因為內容是從第二行開始的,所以i=2表示從第二行開始填充數據
$j = 0;
foreach ($tmp as $key=>$val ){
$objPHPExcel->getActiveSheet()->setCellValue("$letter[$j]$i",$data[$i-2][$val]); //數據是從第一條開始但是i的初值是2所以想從第一條開始應該是$data[$i-2]開始
$j++;
}
}
步驟5,寫進excel中並輸出
$write = new PHPExcel_Writer_Excel5($objPHPExcel);
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="數據導出_詞雲圖.xls"');
header("Content-Transfer-Encoding:binary");
$write->save('php://output');

(一)CSV文件導出:
csv文件導出最令人頭疼的問題就是編碼問題,現在分享一下我的經驗
首先看伺服器是linux的還是windows的 如果是windows的伺服器那麼編碼問題只能藉助於mb_convert_encoding()或者是iconv兩個函數相互轉換中文編碼
如果伺服器是linux的 那麼很簡單 utf-8: setlocale(LC_ALL, 『en_US.UTF-8′); 簡體中文:setlocale(LC_ALL, 『zh_CN');
下面來說csv導出步驟:

$result = mysql_query("select * from student order by id asc");
$str = "姓名,性別,年齡\n";
$str = iconv('utf-8','gb2312',$str);
while($row=mysql_fetch_array($result)){
$name = iconv('utf-8','gb2312',$row['name']); //中文轉碼
$sex = iconv('utf-8','gb2312',$row['sex']);
$str .= $name.",".$sex.",".$row['age']."\n"; //用引文逗號分開
}
$filename = date('Ymd').'.csv'; //設置文件名
export_csv($filename,$str); //導出
要將數據導出到本地即下載,需要修改header信息,代碼如下:
function export_csv($filename,$data) {
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=".$filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header('Pragma:public');
echo $data;
}

⑥ PHP如何導出當前頁面中的表格至Excel

1.
這屬於php的技術;
2.
php可以用PHPExcel直接導出成excel文件;
代碼如下:
require_once("../lib/excelcreator.class.php");
$myxls
=
new
ExcelCreator
("中文Excel");
$aTableHead
=
'

<Row
ss:AutoFitHeight="0">

<Cell><Data
ss:Type="String">Name3</Data></Cell>

<Cell><Data
ss:Type="String">Surname3</Data></Cell>

</Row>';
$aTableBody
=
'

<Row
ss:AutoFitHeight="0">

<Cell><Data
ss:Type="String">Schwarz3</Data></Cell>

<Cell><Data
ss:Type="String">Oliver3</Data></Cell>

</Row>';
$aTableBottom
=
'

<Row
ss:AutoFitHeight="0">

<Cell><Data
ss:Type="String">123</Data></Cell>

<Cell><Data
ss:Type="String">Peter3</Data></Cell>

</Row>';
$workSheet
=
$myxls->createWorkSheet
(
"中文sheet1",
$aTableHead,
$aTableBody,
$aTableBottom
);
echo
$myxls->createExcel
(
$workSheet
);

⑦ 大哥:php 導出到excel中文問號怎麼解決啊

使用utf-8字元集。不行在追問。
excel用的就是utf8。
如果你需要存到資料庫里,是gbk的話,我可以告訴你怎麼操作。我這邊暫時沒有源碼

⑧ php 導出excel 是什麼意思

分為兩種:
1:類Excel格式,這個其實不是傳統意義上的Excel文件,只是因為Excel的兼容能力強,能夠正確打開而已。修改這種文件後再保存,通常會提示你是否要轉換成Excel文件。
優點:簡單。
缺點:難以生成格式,如果用來導入需要自己分別編寫相應的程序。
2:Excel格式,與類Excel相對應,這種方法生成的文件更接近於真正的Excel格式。
如果導出中文時出現亂碼,可以嘗試將字元串轉換成gb2312,例如下面就把$yourStr從utf-8轉換成了gb2312:
$yourStr = mb_convert_encoding("gb2312", "UTF-8", $yourStr);

⑨ php ci 怎樣導出excel

php導出有phpexcel類。網路直接可以找到官網下載。

header("Content-type:text/html;charset=utf-8");
require_once'./phpexcel/PHPExcel.php';//引入phpexcel
$phpexcel=newPHPExcel();
//設置表頭
$phpexcel->setActiveSheetIndex(0)
->setCellValue('A1','序號')
->setCellValue('B1','姓名')
->setCellValue('C1','班級')
->setCellValue('D1','成績');
//標簽名
$phpexcel->getActiveSheet()->setTitle('會員報名表');

//使用第一個表
$phpexcel->setActiveSheetIndex(0);

$objWriter=newPHPExcel_Writer_Excel5($phpexcel);

//查詢到的數據源
$list=D('roster_enroll')->select();

foreach($listas$key=>$value){
//表格是從2開始的因為上面還有表頭
$i=$key+2;
$phpexcel->getActiveSheet()->setCellValue('A'.$i,$value['uname']);//這里是設置A1單元格的內容
$phpexcel->getActiveSheet()->setCellValue('B'.$i,$value['phone']);////這里是設置B1單元格的內容
$phpexcel->getActiveSheet()->setCellValue('C'.$i,$value['class']);////這里是設置C1單元格的內容
$phpexcel->getActiveSheet()->setCellValue('D'.$i,$value['souce']);////這里是設置D1單元格的內容
//以此類推,可以設置CDEFG看你需要了。
}
$filename='./'.time().'.xls';
$objWriter->save($filename);

效果如下:

⑩ php 導出excel

不知道你那邊什麼情況,貼段我的導出代碼,你參考吧

$objPHPExcel=newPHPExcel();

//獲取學校列表
$schools=$this->excelio->getSchoolList();
//處理Excel里的數據,橫著取數據
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1','學校id')
->setCellValue('B1','學校名稱')
->setCellValue('C1','學校類型')
->setCellValue('D1','市')
->setCellValue('E1','區');
$i=2;
foreach($schoolsas$school){
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$i,$school->id)
->setCellValue('B'.$i,$school->name)
->setCellValue('C'.$i,$school->type)
->setCellValue('D'.$i,$school->city)
->setCellValue('E'.$i,$school->district);
$i++;
}
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="學校列表'.date("Y/m/d").'.xls"');
header('Cache-Control:max-age=0');
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
$objWriter->save('php://output');
閱讀全文

與php導出excel中文相關的資料

熱點內容
為什麼安卓機拍照那麼丑 瀏覽:694
伺服器綁定雲產品實例 瀏覽:313
程序員認真工作被開除 瀏覽:453
程序員送蘋果 瀏覽:143
小程序繪圖源碼 瀏覽:968
如何購買域名和伺服器阿里雲 瀏覽:671
伺服器地址及埠在哪裡 瀏覽:695
騰訊雲伺服器有危險嗎 瀏覽:798
復制文件到文件夾php 瀏覽:10
java注釋正則表達式 瀏覽:858
java連接遠程oracle 瀏覽:91
javamainargs 瀏覽:758
金華數據文檔加密軟體公司 瀏覽:855
內心極度擔心解壓的音樂 瀏覽:897
穿搭技巧app卡色配什麼顏色 瀏覽:595
程序員得結石 瀏覽:131
查公司薪資的app叫什麼 瀏覽:410
壓縮包多個文件夾圖片連續看 瀏覽:487
linuxmysql無法用命令啟動 瀏覽:442
地稅身份認證用什麼ApP 瀏覽:532