/**
* 设置导出的excel数据
* @param type $objPHPExcel
* @param type $colModel
* @param type $grid
*/
public function setExcelData($objPHPExcel, $colModel, $grid)
{
$table = $this->model->_table;
for ($i = 0, $t = 0; $i < count($colModel); $i++) {
$label = $colModel[$i]['label'];
$name = $colModel[$i]['name'];
$hidden = empty($colModel[$i]['hidden']) ? FALSE : $colModel[$i]['hidden'];
$key = empty($colModel[$i]['key']) ? FALSE : $colModel[$i]['key'];
$sorttype = empty($colModel[$i]['sorttype']) ? 'string' : $colModel[$i]['sorttype'];
$width = empty($colModel[$i]['width']) ? 20 : $colModel[$i]['width'] / 8;
$isEdit = empty($colModel[$i]['editable']) ? FALSE : $colModel[$i]['editable'];
if ($isEdit && !empty($name) && strstr($name, "go_" . $table . ".") == $name) {
$isEdit = TRUE;
} else {
$isEdit = FALSE;
}
if ($hidden && !$key) {
continue;
}
if ($key) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($t, 1, $label)->getStyleByColumnAndRow($t, 1)->getFont()->setBold(true)->getColor()->setRGB('FF0000');
} else if ($isEdit) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($t, 1, $label)->getStyleByColumnAndRow($t, 1)->getFont()->setBold(true)->getColor()->setRGB('00FF00');
} else {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($t, 1, $label)->getStyleByColumnAndRow($t, 1)->getFont()->setBold(true);
}
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(20);
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($t)->setWidth($width);
for ($j = 0; $j < count($grid["rows"]); $j++) {
$item = $grid["rows"][$j];
$value = $item[$name];
if ($sorttype === 'image' && !empty($value)) {
$url = $this->saveImage("statics/uploads/export_excel_images/", $value);
if (!$url || !isImage($url)) {
$objPHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow($t, $j + 2, $value, PHPExcel_Cell_DataType::TYPE_STRING);
continue;
}
$img = new PHPExcel_Worksheet_Drawing();
$img->setName($name);
$img->setDescription($name);
$img->setPath($url);
$img->setWidth(40); //写入图片宽度
$img->setHeight(40); //写入图片高度
$img->setOffsetX(1); //写入图片在指定格中的X坐标值
$img->setOffsetY(1); //写入图片在指定格中的Y坐标值
$img->setRotation(1); //设置旋转角度
$img->getShadow()->setVisible(true);
$img->getShadow()->setDirection(50);
$columnLetter = PHPExcel_Cell::stringFromColumnIndex($t);
$coordinate = $columnLetter . ($j + 2);
$img->setCoordinates($coordinate); //设置图片所在表格位置
$img->setWorksheet($objPHPExcel->getActiveSheet()); //把图片写到当前的表格中
} else if ($sorttype === 'datetime' && !empty($value)) {
if (strtotime($value)) {
$value = strtotime($value);
}
$value = date("Y-m-d H:m:s", $value);
$objPHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow($t, $j + 2, $value, PHPExcel_Cell_DataType::TYPE_STRING);
} else if ($sorttype === 'number') {
$objPHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow($t, $j + 2, $value, PHPExcel_Cell_DataType::TYPE_NUMERIC);
} else {
$objPHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow($t, $j + 2, $value, PHPExcel_Cell_DataType::TYPE_STRING);
}
}
$t++;
}
}
 //开始导出列表
$grid = array("page" => $page, "records" => $day_num, "rows" => $rowsV, "total" => $total);
writelog2(['msg2' => $this->lang->line('txt_base_upload') . '2', 'settlement_list_export_post_grid' => $grid]);
writelog(['msg2' => $this->lang->line('txt_base_upload') . '2', 'settlement_list_export_post_grid' => $grid]);
$colModel = json_decode($colModel, TRUE);
require_once APPPATH . '/third_party/PHPExcel.php';
require_once APPPATH . '/third_party/PHPExcel/Writer/Excel5.php';
$title = empty($title) ? "gplqdb" : $title;
$fileName = $title . date("YmdHis");
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator($this->lang->line('txt_base_web_name'));
$objPHPExcel->getProperties()->setLastModifiedBy("1.gaopeng.com");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Document");
$objPHPExcel->getProperties()->setDescription($this->lang->line('txt_base_web_name'));
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(30);
//填充数据
$this->setExcelData($objPHPExcel, $colModel, $grid);
$objPHPExcel->getActiveSheet()->setTitle($title);
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
$pub_dir = FCPATH . "statics/uploads/export_excels/";
if (!is_dir($pub_dir)) {
@mkdir($pub_dir, 0777, TRUE);
}
$file_name = $pub_dir . $fileName . ".xls";
$objWriter->save($file_name); $this->returnData($_SERVER['SERVER_NAME']."/statics/uploads/export_excels/".$fileName . ".xls");

设置导出的excel数据的更多相关文章

  1. 在asp.net中导出表格Excel数据

    第一步:需要引用org.in2bits.MyXls程序集到使用页面 第二步:前台代码 <asp:Button ID="LeadingOut" runat="serv ...

  2. NPOI 设置导出的excel内容样式

    导出excel时,有时要根据需要加上一些样式,以上几种样式是我在项目中用到的 一.给单元格加背景色只需两步:一是创建单元格背景景色对象:二是给单元格绑定样式 //创建单元格背景颜色对象 HSSFPal ...

  3. 使用POI设置导出的EXCEL锁定指定的单元格

    注:要锁定单元格需先为此表单设置保护密码,设置之后此表单默认为所有单元格锁定,可使用setLocked(false)为指定单元格设置不锁定. sheet.protectSheet("&quo ...

  4. php导出excel数据

    提供两种导出excel方法 1 最简单的导出excel header('Content-Type: application/vnd.ms-excel'); //设置文件类型   也可以将 vnd.ms ...

  5. 利用PHPExcel 实现excel数据的导入导出(源码实现)

    利用PHPExcel 实现excel数据的导入导出(源码实现) 在开发过程中,经常会遇到导入导出的需求,利用phpexcel类实现起来也是比较容易的,下面,我们一步一步实现 提前将phpexcel类下 ...

  6. C# datatable 导出到Excel

    datatable导出到Excel /// <summary> /// 将DataTable导出为Excel文件(.xls) /// </summary> /// <pa ...

  7. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  8. salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)

    我们都知道,报表有个功能为导出excel,但是有的时候客户需求往往标准的报表达不到,比如导出excel,其中本月修改的数据字段标红,如下图所示. 这就需要我们去写VF来实现此功能. 需求:将数据表记录 ...

  9. 学习笔记 DataGridView数据导出为Excel

    DataGridView数据导出为Excel   怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...

随机推荐

  1. 不存在类型或命名空间名称“HttpContext”

    错误:命名空间“System.Web”中不存在类型或命名空间名称“HttpContext”(是缺少程序集引用吗?) 解决办法:创建类库项目时,默认是没有添加System.Web的,在项目名称上右键,添 ...

  2. document.frames与window.frames在不同浏览器中的使用

    问题: document.frames 只有 IE Opera 支持.等同于 window.frames.用来取得当前页面内 window 对象的集合. 在 Firefox Chorome Safar ...

  3. MySQL存储过程中判断形参是否为空null

    直接看例子: DELIMITER $$CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `restore`(username varchar(50))BEGINi ...

  4. poj 2501 Average Speed

    Average Speed Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4842   Accepted: 2168 Des ...

  5. StrangeIoc框架学习

    StrangeIoc是一款基于MVCS的一种框架,是对MVC思想的扩展,是专门针对Unity3D开发的一款框架,非常好用. 一.MVCS分别代表什么 MVCS框架是一种模块的分离,一种写代码的规则,目 ...

  6. 项目管理系列--从零开始Code Review[转]

    从零开始Code Review 这篇帖子不是通篇介绍Code Review的方法论, 而是前大段记录了我们团队怎么从没有这个习惯到每天都进行review的过程, 后小段给出了我的一些建议. 希望能对诸 ...

  7. 《Maven实战》关联实际工作的核心知识

    通读了<Maven实战>这本书,由于在实际的工作中,对其有一定的操作上的经验.因此,再回头去通读这本书,就能够更加精准的把握里面的核心知识了. 以下我主要从两点去介绍之—— 1> m ...

  8. webpack的学习感悟

    https://github.com/webpack/webpack    webpack gethub地址. http://webpack.github.io/   webpack 官网 前言 we ...

  9. css样式美化 下拉框 select 样式

    <span class="setleft wid80"><span class="fyhbx">*</span>入库类型 : ...

  10. 微信小程序整理

    目录 开发环境 目录结构 WXML组件 WXSS 数据绑定 条件渲染 列表渲染 模版 事件 引用 路由传参 API 实例TodoList 1.开发环境 开发工具下载(https://mp.weixin ...