PHP 利用PHPExcel到处数据到Excel;还有导出数据乱码的解决方案。
程序员文章站
2022-06-22 10:39:17
直接贴代码吧 PHP版本5.6.38 mysql版本5.0 如果导出来的Excel文字都是乱码的话,一定要在header()前面加上ob_end_clean()! 还有很多关于Excel样式的一些设置,大家可以上网查一下相关的资料~ ......
直接贴代码吧
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']); $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()!
还有很多关于excel样式的一些设置,大家可以上网查一下相关的资料~
推荐阅读
-
PHP 利用PHPExcel到处数据到Excel;还有导出数据乱码的解决方案。
-
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)_php技巧
-
php导出数据到excel出现乱码的解决办法
-
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)_PHP
-
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)_PHP
-
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)_php技巧
-
利用PHPExcel将数据导出到xls格式的excel文件_PHP教程
-
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)_PHP教程
-
利用PHPExcel将数据导出到xls格式的excel文件_PHP教程
-
php导出数据到excel出现乱码的解决办法