php导出数据excel

简介:
           public function villageinfo(){
              set_time_limit('0');
              $villageDb=D("Village");
              $houseDb=D("House");
              $areaDb=D("FangArea");
              $field="villageName,villageId,fangAreaId";
              $data=$villageDb->field($field)->select();
              foreach($data as $key=>$val){
                  $a=$areaDb->getAreaName($val['fangAreaId']);
                  $data[$key]['areaname']=$a['fangAreaName'];
                  $b=$houseDb->getHouseNum($val['villageId'],340100);
                  $data[$key]['count']=$b;

              }
              $this->getExcel('','',$data);
          }

private  function getExcel($fileName,$headArr,$data){
   //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
   require_once THINK_PATH.'Library/Org/Util/PHPexcel/PHPExcel.php';
   import("Library.Org.Util.PHPExcel");
   import("Library.Org.Util.PHPExcel.Writer.Excel5");
   import("Library.Org.Util.PHPExcel.IOFactory.php");

   $date = date("Y_m_d",time());
   $fileName .= "_{$date}.xls";

   //创建PHPExcel对象,注意,不能少了\
   $objPHPExcel = new \PHPExcel();
   $objProps = $objPHPExcel->getProperties();

   //设置表头
   $key = ord("A");
   //print_r($headArr);exit;
   foreach($headArr as $v){
       $colum = chr($key);
       $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
       $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
       $key += 1;
   }

   $column = 2;
   $objActSheet = $objPHPExcel->getActiveSheet();

   //print_r($data);exit;
   foreach($data as $key => $rows){ //行写入
       $span = ord("A");
       foreach($rows as $keyName=>$value){// 列写入
           $j = chr($span);
           $objActSheet->setCellValue($j.$column, $value);
           $span++;
       }
       $column++;
   }

   $fileName = iconv("utf-8", "gb2312", $fileName);

   //重命名表
   //$objPHPExcel->getActiveSheet()->setTitle('test');
   //设置活动单指数到第一个表,所以Excel打开这是第一个表
   $objPHPExcel->setActiveSheetIndex(0);
   ob_end_clean();//清除缓冲区,避免乱码
   header('Content-Type: application/vnd.ms-excel');
   header("Content-Disposition: attachment;filename=\"$fileName\"");
   header('Cache-Control: max-age=0');

   $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
   $objWriter->save('php://output'); //文件通过浏览器下载
   exit;
}



本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang3391/1877446
相关文章
|
23天前
|
easyexcel
【EasyExcel】第二篇:导出excel文件,导出多个sheet工作空间
【EasyExcel】第二篇:导出excel文件,导出多个sheet工作空间
|
1月前
|
SQL 数据库连接 数据库
【SQL Server】2. 将数据导入导出到Excel表格当中
【SQL Server】2. 将数据导入导出到Excel表格当中
43 0
|
1月前
|
SQL 缓存 easyexcel
面试官问10W 行级别数据的 Excel 导入如何10秒处理
面试官问10W 行级别数据的 Excel 导入如何10秒处理
57 0
|
2月前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
21 0
|
2月前
|
Java API Apache
使用AOP+反射实现Excel数据的读取
使用AOP+反射实现Excel数据的读取
|
24天前
|
JavaScript 前端开发
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
|
2月前
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
55 0
|
5天前
|
Java Apache
java读取excel数据案例
Java代码示例使用Apache POI库读取Excel(example.xlsx)数据。创建FileInputStream和XSSFWorkbook对象,获取Sheet,遍历行和列,根据单元格类型(STRING, NUMERIC, BOOLEAN)打印值。需引入Apache POI库并确保替换文件路径。
7 1
|
13天前
|
easyexcel 数据库
公司大佬对excel导入、导出的封装,那叫一个秒啊
封装公司统一使用的组件的主要目标是为了简化开发人员的调用流程,避免各个项目组重复集成和编写不规范的代码。文中提到对阿里EasyExcel进行了二次封装,提供了导入和导出功能,并支持模板的导入和导出。此外,还处理了读取数据与实际保存数据不一致的情况,通过提供自定义转换器来解决。
36 0