设置导出的excel数据
/**
* 设置导出的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数据的更多相关文章
- 在asp.net中导出表格Excel数据
第一步:需要引用org.in2bits.MyXls程序集到使用页面 第二步:前台代码 <asp:Button ID="LeadingOut" runat="serv ...
- NPOI 设置导出的excel内容样式
导出excel时,有时要根据需要加上一些样式,以上几种样式是我在项目中用到的 一.给单元格加背景色只需两步:一是创建单元格背景景色对象:二是给单元格绑定样式 //创建单元格背景颜色对象 HSSFPal ...
- 使用POI设置导出的EXCEL锁定指定的单元格
注:要锁定单元格需先为此表单设置保护密码,设置之后此表单默认为所有单元格锁定,可使用setLocked(false)为指定单元格设置不锁定. sheet.protectSheet("&quo ...
- php导出excel数据
提供两种导出excel方法 1 最简单的导出excel header('Content-Type: application/vnd.ms-excel'); //设置文件类型 也可以将 vnd.ms ...
- 利用PHPExcel 实现excel数据的导入导出(源码实现)
利用PHPExcel 实现excel数据的导入导出(源码实现) 在开发过程中,经常会遇到导入导出的需求,利用phpexcel类实现起来也是比较容易的,下面,我们一步一步实现 提前将phpexcel类下 ...
- C# datatable 导出到Excel
datatable导出到Excel /// <summary> /// 将DataTable导出为Excel文件(.xls) /// </summary> /// <pa ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)
我们都知道,报表有个功能为导出excel,但是有的时候客户需求往往标准的报表达不到,比如导出excel,其中本月修改的数据字段标红,如下图所示. 这就需要我们去写VF来实现此功能. 需求:将数据表记录 ...
- 学习笔记 DataGridView数据导出为Excel
DataGridView数据导出为Excel 怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...
随机推荐
- UCF约束介绍
约束 (一)约束的分类: 利用FPGA进行系统设计常用的约束主要分为3类. (1)时序约束:主要用于规范设计的时序行为,表达设计者期望满足的时序条件,知道综合和布局布线阶段的优化算法等. (2)布局布 ...
- ubuntu 16 .04常见指令整理
删除类指令 sudo rm -rf 文件名 //该指令为直接删除指令 -------------------------------------------------------------- ...
- (转)nginx location在配置中的优先级
原文:https://www.bo56.com/nginx-location%E5%9C%A8%E9%85%8D%E7%BD%AE%E4%B8%AD%E7%9A%84%E4%BC%98%E5%85%8 ...
- sencha touch list infinite 属性
sencha touch list 1 默认每一项的高度会自动适应其内容. 2 当每一个 item 的高度都相同且不变时, 设置 itemHeight 为固定值 和 variableHeights 为 ...
- Java线程问题(基础回顾)
1.概念:线程是运行程序(进程)中单个顺序的小程序,一个进程可以由多个线程组成,而这多个线程共享同一个存储空间,这使得线程间的通信比较容易.在一个多进程的程序中,如果要切换到另一个进程,需要改变地址空 ...
- orcale 之 多表查询
在以往的工作中我们不可能单一的从一张表中查询数据,而在开始设计数据库的时候,我们会把一些数据存放在不同的数据表中,因此往往需要从多个数据表中获取到我们想要的数据. 笛卡儿积 在学习这些之前我们先了解一 ...
- 基于steamworks获取steam用户头像
查看官网api,使用c++写的,转成c#之后,有个问题就是,图片显示问题 我们可以获取到一个含有图片信息的byte[] 然后 private Texture2D downloadedAvatar; p ...
- CentOS7下Django安装
Django安装介绍 安装环境: CentOS7 安装Django比较简单,但需要安装其依赖的东西,还是需要一定时间的.我使用的环境是CentOS Linux release 7.3.1611. 内核 ...
- python-入门教程(-)
# hello worldprint("hello world") # 变量msg = "使用变量"print(msg) # 字符串大小写变换(仅针对英文)na ...
- CSS3——transform2D的应用
前言: 关于CSS3,我想最让人感到有意思的就是2D和3D的技术,这让我们的网页立马丰富起来,可以让我们完成一些很酷很炫的效果,比如旋转木马.经过一段时间的学习,让我对CSS3有了更近一步的了解,在此 ...