phpexcel导出excel的颜色和网页中的颜色显示不一致
2015-01-24信息快讯网
关于phpexcel导出颜色的一些问题,用phpexcel做导出的excel的颜色怎么和网页中的颜色显示不一致呢,接下来将详细介绍解决方法
关于phpexcel导出颜色的一些问题,用phpexcel做导出的excel的颜色怎么和网页中的颜色显示不一致呢?想要知道到底是怎么回事?应该如何来解决呢?PHP代码细节如下:PHP code:
<?php require_once './PHPExcel.php'; require_once './Excel5.php'; require_once './get_excel_row.php'; require "../include/base.php"; require "../include/function/006/creatExcelDb.php"; define("COLOR1","#96B7F6"); //查 处理 数据===+++++++++++++++++++++++++++++++++++++++++++++ $q = $db->query("select * from oa_event_sales"); while($a = $db->fetch_array($q)){ $list[] = $a; } $ce = new creatExcelDb(); $re = $ce->_run($list,'served_time','client_status','oid'); $all_nums=0; $num=array(); foreach($re as $k=>$v){ $num[$k]=count($re[$k]); $all_nums+=count($re[$k]); } $jq = array(); $title1 = client_status; $title2 = fin_confirm; $title3 = oid; //去除数组中相同的值 foreach($re as $key => $val){ if(true){ foreach($val as $key2 => $val2){ if(!in_array($key2,$jq)){ $jq[] = $key2; } } } } $arr_keys=array(); foreach($re as $k=>$v){ foreach($v as $k2=>$v2){ $arr_keys[]=$k2; } } $c=array_count_values($arr_keys); //++===++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // 创建一个处理对象实例 $objExcel = new PHPExcel(); // 创建文件格式写入对象实例, uncomment $objWriter = new PHPExcel_Writer_Excel5($objExcel); //设置文档基本属性/**似乎一般情况下用不到**/ $objProps = $objExcel->getProperties(); $objProps->setCreator("杨本木"); $objProps->setLastModifiedBy("杨本木"); $objProps->setTitle("杨本木"); $objProps->setSubject("杨本木"); $objProps->setDescription("杨本木"); $objProps->setKeywords("杨本木"); $objProps->setCategory("杨本木"); //************************************* //设置当前的sheet索引,用于后续的内容操作。 //一般只有在使用多个sheet的时候才需要显示调用。 //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0 $objExcel->setActiveSheetIndex(0); $objActSheet = $objExcel->getActiveSheet(); //设置当前活动sheet的名称 $objActSheet->setTitle('当前sheetname'); //设置宽度,这个值和EXCEL里的不同,不知道是什么单位,略小于EXCEL中的宽度 //$objActSheet->getColumnDimension('A')->setWidth(20); //$objActSheet->getRowDimension(1)->setRowHeight(30); //高度 //设置单元格的值 $objActSheet->setCellValue('A1', '总标题显示'); /* //设置样式 $objStyleA1 = $objActSheet->getStyle('A1'); $objStyleA1->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objFontA1 = $objStyleA1->getFont(); $objFontA1->setName('宋体'); $objFontA1->setSize(18); $objFontA1->setBold(true); //设置列居中对齐 $objActSheet->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); */ //============first=================================== $benmu=1; $objActSheet->setCellValue('A1', '行标签\列标签'); foreach($jq as $k=>$v){ $objActSheet->setCellValue(get_excel_row($benmu).'1', $v); $benmu+=1; } $objActSheet->setCellValue(get_excel_row($benmu).'1', '总计'); //设置宽度 for($i=0;$i<$benmu+1;$i++){ $objActSheet->getColumnDimension(get_excel_row($i))->setWidth(20); //宽度 $objActSheet->getStyle(get_excel_row($i)."1")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objActSheet->getStyle(get_excel_row($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //颜色 $objActSheet->getStyle(get_excel_row($i)."1")->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle(get_excel_row($i)."1")->getFill()->getStartColor()->setARGB(COLOR1); } //==============content================= $y=2; foreach($re as $k1=>$v1){ //$k1全部放在A2。。。。后面,k1为电话号码、v1为person-》数字 $objActSheet->setCellValue('A'.$y, $k1); //颜色 $objActSheet->getStyle('A'.$y)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle('A'.$y)->getFill()->getStartColor()->setARGB(COLOR1); foreach($jq as $k2=>$v2){ //k2是0,v2是person foreach($v1 as $k3=>$v3){ //$k3为person,$v3是要的值 if($k3==$v2){ //$objActSheet->setCellValue(get_excel_row("1"+$k2).$y,$v1[$k3]); $objActSheet->setCellValueExplicit(get_excel_row("1"+$k2).$y,$v1[$k3],PHPExcel_Cell_DataType::TYPE_STRING); } } } $objActSheet->setCellValue(get_excel_row("1"+count($jq)).$y, $num[$k1]); $y+=1; } //=================last========== $objActSheet->setCellValue("A".$y,"总计"); //颜色 $objActSheet->getStyle("A".$y)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle("A".$y)->getFill()->getStartColor()->setARGB(COLOR1); foreach($jq as $k=>$v){ //k为person $objActSheet->setCellValue(get_excel_row("1"+$k).$y,$c[$v]); //颜色 $objActSheet->getStyle(get_excel_row("1"+$k).$y)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle(get_excel_row("1"+$k).$y)->getFill()->getStartColor()->setARGB(COLOR1); } $objActSheet->setCellValue(get_excel_row("1"+count($jq)).$y,$all_nums); //颜色 $objActSheet->getStyle(get_excel_row("1"+count($jq)).$y)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objActSheet->getStyle(get_excel_row("1"+count($jq)).$y)->getFill()->getStartColor()->setARGB(COLOR1); //=============================== //输出内容 $outputFileName =time().".xls"; header("Pragma: public"); header("Expires: 0"); header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); header("Content-Type:application/force-download"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download"); header('Content-Disposition:attachment;filename='.$outputFileName.''); header("Content-Transfer-Encoding:binary"); $objWriter->save('php://output'); ?>
上面的代码中,define中的颜色在导出的excel没有正确显示出本来应该的颜色?是什么原因?为什么呢?
开始定义了一个红色看显示是什么,如下:define(“COLOR1″,”#FF0000″);
但是结果显示的是,定义蓝色在excel中显示为类似于紫色的颜色,反正就不是页面显示的那种颜色,太令人费解了。。。。。
看这句代码:$objActSheet->getStyle(‘A'.$y)->getFill()->getStartColor()->setARGB(COLOR1);
有点觉得可能是ARGB原因,故试着把颜色前面加两位00,我不知道这样行不行,试试效果先,而且格式也有可能是这样的argb(128,255,0,0),可以先排除这个问题,因为a是透明度,后来试验了才知道,确实是增加了透明度的4位定色。
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
解析array splice的移除数组中指定键的值,返回一个新的数组
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
php selectradio和checkbox默认选择的实现方法详解
php setcookie(name, value, expires, path, domain, secure) 参数详解
浅析memcache启动以及telnet命令详解
解析php中如何直接执行SHELL
领悟php接口中interface存在的意义
比较strtr, str_replace和preg_replace三个函数的效率
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
php 备份数据库代码(生成word,excel,json,xml,sql)
基于PHPExcel的常用方法总结
eAccelerator的安装与使用详解
PHP--用万网的接口实现域名查询功能
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
用Simple Excel导出xls实现方法
php读取EXCEL文件 php excelreader读取excel文件
php excel reader读取excel内容存入数据库实现代码
PHP提示Notice: Undefined variable的解决办法
php如何调用webservice应用介绍
php shell超强免杀、减少体积工具实现代码
php中explode与split的区别介绍
PHP explode()函数用法、切分字符串
PHP教程之PHP中shell脚本的使用方法分享
PHPExcel读取Excel文件的实现代码
ThinkPHP与PHPExcel冲突解决方法