如何使用PHPExcel在PHP中将数据导出为Excel文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计934个文字,预计阅读时间需要4分钟。
使用PHP和PHPExcel处理数据导出到Excel时,若遇到导出数据乱码问题,可以尝试以下解决方案:
1. 确保服务器上安装了正确的字符编码库,如iconv。
2.在导出前,将数据库查询结果转换为UTF-8编码。
3.在PHPExcel中设置正确的字符编码。
代码示例:
php
$conn=new mysqli($mysql_server_name, $mysql_user, $mysql_password, $mysql_database);
// 检查连接if ($conn->connect_error) { die(连接失败: . $conn->connect_error);}
// 设置字符编码$conn->set_charset(utf8);
// 查询数据$sql=SELECT * FROM table_name;$result=$conn->query($sql);
// 创建PHPExcel对象$objPHPExcel=new PHPExcel();
// 设置活动工作表$objPHPExcel->setActiveSheetIndex(0);
// 设置表头$headings=array( 'ID', 'Name', 'Age', 'Country');$col=0;foreach ($headings as $heading) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $heading); $col++;}
// 填充数据$row=2;while ($row_data=$result->fetch_assoc()) { $col=0; foreach ($row_data as $value) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value); $col++; } $row++;}
// 设置输出编码header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header('Content-Disposition: attachment;filename=data.xlsx');header('Cache-Control: max-age=0');
// 保存为Excel文件$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save('php://output');
// 关闭数据库连接$conn->close();?>
注意:请将代码中的数据库连接信息、表名和字段名替换为实际的值。
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相关知识,请访问php教程!
以上就是PHP利用PHPExcel导出数据到Excel的详细内容,更多请关注自由互联其它相关文章!
本文共计934个文字,预计阅读时间需要4分钟。
使用PHP和PHPExcel处理数据导出到Excel时,若遇到导出数据乱码问题,可以尝试以下解决方案:
1. 确保服务器上安装了正确的字符编码库,如iconv。
2.在导出前,将数据库查询结果转换为UTF-8编码。
3.在PHPExcel中设置正确的字符编码。
代码示例:
php
$conn=new mysqli($mysql_server_name, $mysql_user, $mysql_password, $mysql_database);
// 检查连接if ($conn->connect_error) { die(连接失败: . $conn->connect_error);}
// 设置字符编码$conn->set_charset(utf8);
// 查询数据$sql=SELECT * FROM table_name;$result=$conn->query($sql);
// 创建PHPExcel对象$objPHPExcel=new PHPExcel();
// 设置活动工作表$objPHPExcel->setActiveSheetIndex(0);
// 设置表头$headings=array( 'ID', 'Name', 'Age', 'Country');$col=0;foreach ($headings as $heading) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $heading); $col++;}
// 填充数据$row=2;while ($row_data=$result->fetch_assoc()) { $col=0; foreach ($row_data as $value) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value); $col++; } $row++;}
// 设置输出编码header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header('Content-Disposition: attachment;filename=data.xlsx');header('Cache-Control: max-age=0');
// 保存为Excel文件$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save('php://output');
// 关闭数据库连接$conn->close();?>
注意:请将代码中的数据库连接信息、表名和字段名替换为实际的值。
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相关知识,请访问php教程!
以上就是PHP利用PHPExcel导出数据到Excel的详细内容,更多请关注自由互联其它相关文章!

