设置导出的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,绑定了数据源 ...
随机推荐
- Word常用定义的变量
unit U_WordConst; interface {*******Word窗体状态************} const wdWindowStateNormal = $00000000; ...
- 更好的理解MVC
mvc除了将数据层和逻辑层分离外,还有更好的优化了代码结构 m只和c交互,v也只和c交互,m与v的交互需要通过c,一共只用考虑4条路 如果不是这样的话,m v c需要考虑和每个人交互,那么就是要考虑 ...
- oracle系统包——dbms_random用法
oracle中随机数的包的源文件目录:{oracle_home}\rdbms\admin\dbmsrand.sql 1.返回0~1间的随机数(包括0和1)sql> select dbms_ran ...
- D3学习笔记一
D3学习笔记一 什么是D3? D3(全称Data Driven Documents)是一个用来做Web数据可视化的JavaScript函数库.D3也称之为D3.js. D3是2011年由Mike Bo ...
- JNI注册调用完整过程-安卓4.4
在Android系统中,JNI方法是以C/C++语言来实现的,然后编译在一个so文件里面,以我之前的例子为例Android Studio使用JNI,调用之前要加载到当前应用程序的进程的地址空间中: s ...
- Redis双机热备方案--转
http://luyx30.blog.51cto.com/1029851/1350832 参考资料: http://patrick-tang.blogspot.com/2012/06/redis-ke ...
- Firebird SEQUENCE
Firebird3 以后可以有自增列,也可以类似Oracle.Postgresql手动添加序列,产生新值,灵活操作. 创建序列: INCREMENT ; 修改序列最大值: ; 产生新值: 1. ) f ...
- SSIS教程:创建简单的ETL包 -- 2. 添加循环(Adding Looping)
在第 1 课:创建项目和基本包中,创建了从单个平面文件源中提取数据的包,然后使用查找转换功能对数据进行了转换,最后将数据加载到AdventureWorksDW2012 示例数据库的 FactCurre ...
- .NET 中使用阿里云短信的 API 接口
小弟初来乍到,这也是我的第一篇文章,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信 ...
- IDEA启动Jetty报404
在别的电脑上是OK的,到本机就不行了,很可能是Working路径的问题. 设置这里的路径即可:(你的web模块路径)