php 导出excel的三种方法
1.PHPExcel
thinkphp PHPExcel放到这个目录下
/*** 导出excel表格*/ function exportExcel($data,$filename){$xlsTitle = iconv('utf-8', 'gb2312', $filename); //文件名称//$fileName = $filename . "-" . date('YmdHis'); //or $xlsTitle 文件名称可根据vendor("PHPExcel.PHPExcel");$objPHPExcel = new \PHPExcel();$objPHPExcel->setActiveSheetIndex(0);$dateExcel = $objPHPExcel->getActiveSheet();$dateExcel->getDefaultStyle()->getFont()->setName('微软雅黑');$dateExcel->getDefaultStyle()->getFont()->setSize(12); //字体大小$dateExcel->getStyle('1')->getFont()->setBold(true); //第一行是否加粗$dateExcel->getStyle('1')->getFont()->setSize(13); //第一行字体大小$dateExcel->getStyle('1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平居中// 设置行高度$dateExcel->getDefaultRowDimension()->setRowHeight(20); //设置默认行高$dateExcel->getRowDimension('1')->setRowHeight(30); //第一行行高$rows = count($data);for ($i = 0; $i < count($data); $i++) {$row = $i + 1;$key = ord("A");//A--65$key2 = ord("@");//@--64foreach ($data[$i] as $d) {if ($key > ord("Z")) {$key2 += 1;$key = ord("A");$col = chr($key2) . chr($key);//超过26个字母时才会启用} else {if ($key2 >= ord("A")) {$col = chr($key2) . chr($key);//超过26个字母时才会启用} else {$col = chr($key);}}$dateExcel->setCellValue($col . $row, $d);$key++;}}//边框样式$styleArray = array('borders' => array('allborders' => array(//'style' => PHPExcel_Style_Border::BORDER_THICK,//边框是粗的'style' => \PHPExcel_Style_Border::BORDER_THIN,//细边框'color' => array('argb' => '#000'),),),);$dateExcel->getStyle('A1:' . $col . $rows)->applyFromArray($styleArray);$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);ob_end_clean(); //!!!!!!!清除缓冲区,避免乱码header('pragma:public');header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');header("Content-Disposition:attachment;filename=$filename.xls");$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output'); }
参数$data 传入的格式为:
$filename为文件名
2.\t
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
//输出内容如下:
echo "姓名"."\t";
echo "生日"."\t[这有一个空格]";
echo "学历"."\t";
echo "\n";
echo "张三"."\t";
echo "1992-10-12"."\t";
echo "本科"."\t";
?>
如果遇到xls打开中文乱码的问题,可以使用mb_convert_encoding("姓名", "gb2312", "UTF-8")这个方法,将UTF-8转为gb2312编码格式。注:这个根据自己的实际情况转码,我自己的是UTF-8输出到xls乱码
在使用\t输出excel的时候,因有时间格式显示不完全,固在时间一列上加了一个空格,输出时间显示,但列宽不够,不会设置,于是选择了第三种方式,可以添加style设置样式
3.table
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
$html= ""; foreach ($data as $value){$html=$html."<tr><td align='center'>".$value[0]."</td>"."<td align='center'>".$value[1]."</td>"."<td align='center' >".$value[2]." "."</td>"."<td align='center' style='vnd.ms-excel.numberformat:yyyy-mm-dd hh:mm'>".$value[3]."</td>"."<td align='center' style='vnd.ms-excel.numberformat:yyyy-mm-dd hh:mm'>".$value[4]."</td>"."<td align='center'>".$value[5]."</td>"; } $html="<table border='1'>".$html."</table>"; echo $html;
如果出现乱码,则头信息更换为
header("Content-type: text/html; charset=utf-8"); header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=$filename.xls"); header("Pragma: no-cache"); header("Expires: 0");
附:GridView导出Excel常见的5种文本格式
1) 文本:vnd.ms-excel.numberformat:@
2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3) 数字:vnd.ms-excel.numberformat:#,##0.00
4) 货币:vnd.ms-excel.numberformat:¥#,##0.00
5) 百分比:vnd.ms-excel.numberformat: #0.00%
php 导出excel的三种方法相关推荐
- (转).NET导出Excel的四种方法及评测
.NET导出Excel的四种方法及评测 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspo ...
- [转]asp.net导出数据到Excel的三种方法
原文出处:asp.net导出数据到Excel的几种方法(1/3) .asp.net导出数据到Excel的几种方法(2/3).asp.net导出数据到Excel的几种方法(3/3) asp.net导出到 ...
- .net npoi xssfclientanchor设置图片缩放大小_.NET导出Excel的四种方法及评测
前言 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspose.Cells四个市面上常见的库 ...
- .NET导出Excel的四种方法及评测
前言 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspose.Cells四个市面上常见的库 ...
- Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载
场景 HSSFworkbook,XSSFworkbook,SXSSFworkbook区别 HSSFWorkbook: 是操作Excel2003以前(包括2003)的版本,扩展名是.xls:导出exce ...
- flex前端+java后台实现Flex导出Excel的两种方法,
Flex前端+Java后台,要将Flex界面中AdvancedDataGrid的数据导出成Excel文件.有2种方法: 1.直接在前台导出. 使用开源项目as3xls,下载个解决了中文乱码的 ...
- android手机照片导出来,华为手机相册怎么导出到电脑?华为手机相册批量导出电脑的三种方法...
出去玩总会拍下很多很多的照片,但是我们一般发到朋友圈里面的照片很多少,而且照片都是经过千挑万选,美颜美颜在美颜的,但是还有很多照片存放在照片里面,删了吧,这是记忆,不删吧占用内存,有很多人,可能就会放 ...
- PDF如何转Excel?三种方法教你实现PDF转Excel,亲测实用又有效!
有时候,我们需要将PDF表格数据导入到其他应用程序中,例如PPT.Word等.在这种情况下,将PDF表格数据转换成EXCEL格式可以更加方便地进行数据的导入和使用.PDF如何转Execl呢,分享三种有 ...
- C#导出EXCEL的几种方法
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...
- oracle数据迁移过程中,把表中数据导出为txt文件的三种方法
在数据迁过程中需求需要将oracle数据库数据导出程txt格式然后再导入db2库中,经查询实验汇总三种方法: 1.plsqldev 里面有一个选项可以把表以excel格式到时 2.使用spool sq ...
最新文章
- 学习C++的五十个建议(转
- Java面试题—内部类和静态内部类的区别
- 启动activity的标准的action常量及对应的字符串
- Wannafly挑战赛23 A	字符串
- 高德地图上线高考出行专项服务
- 使用Python编写一个聪明的尼姆游戏
- NSAT-3030 数字万用表自动计量系统
- 2019年大学计算机基础题库,大学计算机基础考试题库(含答案)
- java大小写金额转换_java将金额转化为大写金额
- 2022-2028年中国仿制药产业深度调研及投资前瞻分析报告
- java中强制退出jvm的代码
- python做出来的东西怎么让别人看_有趣的Python图片制作之如何用QQ好友头像拼接出里昂...
- “强者恒强”,零食江湖来到新赛点
- JMeter直连数据库报错Uncaught Exception java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z
- HTTPS网页打开缓慢或者打不开
- Incorrect number of arguments for FUNCTION XXX
- ASCII的最大值到底是127还是255
- 进化算法可以不再需要计算集群,开普敦大学的新方法用一块GPU也能刷新MNIST记录...
- 穷举法求经典数学问题(鸡和兔)
- Python之ocr识别图片并转为excel文件
热门文章
- Opencv图像二值化操作
- 安装GitHub安装步骤
- 《MATLAB智能算法30个案例》:第5章 基于遗传算法的LQR控制器优化设计
- matlab生成的图显示数据类型,matlab中数据类型及图像显示
- Oracle Instant Client安装与配置
- 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第四章(3) 创建新工程
- 赵容弼(Cho Yong Pil) -《30周年纪念专辑》
- 如何编译CWM Recovery
- moodle php代码解读_Moodle插件开发笔记
- GridView中DataFormatString属性的取值