设置导出的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,绑定了数据源 ...
随机推荐
- 【转】常用算法复习及实现(C++版)
一.霍夫曼树实现 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree).哈夫曼树是带权路径长度最短的树,权值较大 ...
- XPath语法简介
XPath是一种在xml中查找信息的语言,具体可参考W3school XPath教程 XPath是以路径表达式来选择XML文档中的节点或节点集 === XPath节点(Node) 在 XPath 中, ...
- HAProxy与Nginx区别
1)HAProxy对于后端服务器一直在做健康检测(就算请求没过来的时候也会做健康检查):后端机器故障发生在请求还没到来的时候,haproxy会将这台故障机切掉,但如果后端机器故障发生在请求到达期间,那 ...
- 使用rem单位的问题——Google下字体很大
rem的看法 rem单位确实好处蛮多的,它是相对于根节点,让我们整个网站单位可以统一.还可以让我们的字体更好的自适应网站的大小.但是,你用过了就知道,它会出现一个问题: 用Chrome浏览器打开你做的 ...
- 架构实战项目心得(十):基于spring-ladp的统一用户中心结构设计以及代码结构设计
一.目录设计 1 公司 2 部门 3 注册人员 4 层级人员 二.规则 1 注册 自行注册人员放到模拟公司的目录下,等所属公司组织结构建立完毕,将此人员迁移到所属公司(或者删除此人员,所属公司新建此人 ...
- cs端调用webApi
public class Httphelper { public static string Post1(string url, string postString) { using (WebClie ...
- JVM(四) G1 收集器工作原理介绍
此篇文章半原创是对参考资料中的知识点进行总结,欢迎评论指点,谢谢! 部分知识点总结来自R大的帖子,下文有参考资料的链接 概述 G1 收集是相比于其他收集器(可见 上一篇文章),可以独立运 ...
- Tidb 离线Ansible方式部署实践
1.最近浏览到一个比较新的分布式数据库Tidb,开源看起来比较牛的样子,一时手痒就动手试试部署 2.参考官方 Ansible 离线方式部署 :https://pingcap.com/docs-cn/o ...
- 最近使用日期控件时,用到了My97DatePicker控件,单日期控件,记录一下
以上是使用时的效果,可以自己设定日期有效区间,如下图: 对于起始日期和终止日期的控制如下: <td> <label >起始日期:</label> <input ...
- SQL常用函数总结
SQL常用函数总结 这是我在项目开发中使用db2数据库写存储过程的时候经常用到的sql函数.希望对大家有所帮助: sql cast函数 (1).CAST()函数的参数是一个表达式,它包括用AS关键字分 ...