PHP 利用PHPExcel到處資料到Excel;還有匯出資料亂碼的解決方案。
相關推薦:《PHPExcel-1.8類庫(值得收藏!)》
直接貼程式碼吧!
● PHP版本5.6.38
● mysql版本5.0
//連線資料庫 $mysql_server_name = "*.*.*.*"; $mysql_username="user"; $mysql_password="dbpasswd"; $mysql_database="test"; $conn = mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database); // 檢測連線 if ($conn->connect_error) { die("連線失敗: " . $conn->connect_error); } //設定字元集,如果不設定的話中文可能會亂碼 $conn->query("set names utf8"); //查詢資料 $sql = "SELECT * FROM testdata WHERE inserttime > '2019-09-13' AND inserttime <'2019-0916'"; $result = $conn->query($sql); //遍歷將資料放入陣列中 $data =array(); while ($row = $result->fetch_assoc()) { $data[] = $row; } //將查詢出來的資料匯入Excel中 require_once('./PHPExcel/PHPExcel.php'); // 建立Excel檔案物件 $objPHPExcel = new PHPExcel(); // 設定文件資訊,這個文件資訊windows系統可以右鍵檔案屬性檢視 $objPHPExcel->getProperties()->setCreator("wnn") ->setLastModifiedBy("wnn") ->setTitle("原創文章連結"); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1','文章ID') ->setCellValue('B1','標題') ->setCellValue('C1','連結') ->setCellValue('D1','作者') ->setCellValue('E1','發布時間'); //設定excel表單根據內容大小變化 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setAutoSize(true); //$i=1是標題行 $i=2; foreach ($data as $k=>$v){ $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$i,$v['id']) ->setCellValue('B'.$i,$v['title']) ->setCellValue('C'.$i,$v['arcurl']) ->setCellValue('D'.$i,$v['writer']) ->setCellValue('E'.$i,$v['senddate']); //給C列的文字加上連結 $objPHPExcel->getActiveSheet()->getCell('C'.$i)->getHyperlink()->setUrl($v['arcurl']); $i++; } //給C列的超連結字型顏色變成藍色 $length = count($data)+1; $objPHPExcel->getActiveSheet()->getStyle( 'C2:C'.$length)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE); //檔名稱 $filename=urlencode('原創作品').'_'.date('YmdHis'); //生成xls檔案 ob_end_clean();//清除緩衝區,避免亂碼 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$filename.'.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output');
如果匯出來的Excel文字都是亂碼的話,一定要在header()前面加上ob_end_clean()!
以上就是PHP利用PHPExcel匯出資料到Excel的詳細內容,更多請關注TW511.COM其它相關文章!