1.实现导出Excel文件,并在导出的文件中显示图片

//导出
public function push(){
$goods_list=M('Dajia')->select();
$data = array();
foreach ($goods_list as $k=>$goods_info){
$data[$k][id] = $goods_info['id'];
$data[$k][dingwei] = $goods_info['dingwei'];
$data[$k][mylocal] = $goods_info['mylocal'];
$data[$k][content] = $goods_info['content'];
$data[$k][name] = $goods_info['name'];
$data[$k][tel] = $goods_info['tel'];
}
foreach ($data as $field=>$v){
if($field == 'id'){
$headArr[]='ID';
}
if($field == 'dingwei'){
$headArr[]='提交位置';
}
if($field == 'mylocal'){
$headArr[]='污染位置';
}
if($field == 'content'){
$headArr[]='问题描述';
}
if($field == 'name'){
$headArr[]='举报者姓名';
}
if($field == 'tel'){
$headArr[]='联系电话';
}
}
$filename="jiandu";
$this->getExcel($filename,$headArr,$data);
} private function getExcel($fileName,$headArr,$data){
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
import("Org.PHPExcel");
import("Org.PHPExcel.Writer.Excel5");
import("Org.PHPExcel.IOFactory.php"); $date = date("Y_m_d",time());
$fileName .= "_{$date}.xls"; //创建PHPExcel对象,注意,不能少了\
$objPHPExcel = new \PHPExcel();
$objProps = $objPHPExcel->getProperties(); //设置表头
$key = ord("A");
//print_r($headArr);exit;
foreach($headArr as $v){
$colum = chr($key);
$objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
$objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
$key += 1;
} $column = 2;
$objActSheet = $objPHPExcel->getActiveSheet(); //print_r($data);exit;
foreach($data as $key => $rows){ //行写入
$span = ord("A");
$i=0;
foreach($rows as $keyName=>$value){// 列写入
$i++;
$j = chr($span);
if($value&&($i==7||$i==8||$i==9||$i==10)){
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('Photo');
$objDrawing->setDescription('Photo');
$objDrawing->setPath($value);
$objDrawing->setHeight(170);
$objDrawing->setWidth(120);
$objDrawing->setCoordinates($j.$column);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
}
else{
$objActSheet->setCellValue($j.$column, $value);
}
$span++;
}
$column++;
}
/* $objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('Photo');
$objDrawing->setDescription('Photo');
$objDrawing->setPath('./uploads/1.jpg');
$objDrawing->setHeight(170);
$objDrawing->setWidth(120);
$objDrawing->setCoordinates('G2');
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());*/ $fileName = iconv("utf-8", "gb2312", $fileName);
//重命名表
//$objPHPExcel->getActiveSheet()->setTitle('test');
//设置活动单指数到第一个表,所以Excel打开这是第一个表
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename=\"$fileName\"");
header('Cache-Control: max-age=0'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output'); //文件通过浏览器下载
exit;
}

2.获得中文字符拼音首字母

error_reporting(E_ALL^E_NOTICE);

function getFirstCharter($str){

if(empty($str)){return '';}

$fchar=ord($str{0});

if($fchar>=ord('A')&&$fchar<=ord('z')) return strtoupper($str{0});

$s1=iconv('UTF-8','gb2312',$str);

$s2=iconv('gb2312','UTF-8',$s1);

$s=$s2==$str?$s1:$str;

$asc=ord($s{0})*256+ord($s{1})-65536;

if($asc>=-20319&&$asc<=-20284) return 'A';

if($asc>=-20283&&$asc<=-19776) return 'B';

if($asc>=-19775&&$asc<=-19219) return 'C';

if($asc>=-19218&&$asc<=-18711) return 'D';

if($asc>=-18710&&$asc<=-18527) return 'E';

if($asc>=-18526&&$asc<=-18240) return 'F';

if($asc>=-18239&&$asc<=-17923) return 'G';

if($asc>=-17922&&$asc<=-17418) return 'H';

if($asc>=-17417&&$asc<=-16475) return 'J';

if($asc>=-16474&&$asc<=-16213) return 'K';

if($asc>=-16212&&$asc<=-15641) return 'L';

if($asc>=-15640&&$asc<=-15166) return 'M';

if($asc>=-15165&&$asc<=-14923) return 'N';

if($asc>=-14922&&$asc<=-14915) return 'O';

if($asc>=-14914&&$asc<=-14631) return 'P';

if($asc>=-14630&&$asc<=-14150) return 'Q';

if($asc>=-14149&&$asc<=-14091) return 'R';

if($asc>=-14090&&$asc<=-13319) return 'S';

if($asc>=-13318&&$asc<=-12839) return 'T';

if($asc>=-12838&&$asc<=-12557) return 'W';

if($asc>=-12556&&$asc<=-11848) return 'X';

if($asc>=-11847&&$asc<=-11056) return 'Y';

if($asc>=-11055&&$asc<=-10247) return 'Z';

return null;

}

echo getFirstCharter('黎明');

?>

thinkphp 使用过程中遇到的一个小函数的更多相关文章

  1. js:使用js过程中遇到的一个小问题

    在一个作业中使用了js,函数A调用函数B.当A和B中均含有变量i的时候,相关操作结果可能会出错. 将B中的i替换为j(j不存在于A中)后,结果正确. 目前考虑原因是两个变量i有相关性(或者说实际上就是 ...

  2. 使用ffmpeg视频编码过程中踩的一个坑

           今天说说使用ffmpeg在写视频编码程序中踩的一个坑,这个坑让我花了好多时间,回头想想,非常多时候一旦思维定势真的挺难突破的.以下是不对的编码结果:                   ...

  3. sql2012安装过程中出现个一个问题

    最近安装了一次SQLSERVER2012,遇到了一个小问题,截图如下: 就是上图中状态为失败的项,点开之后,会弹出下面的一个框: 在网上搜了之后,有了这样的答案: http://www.cnblogs ...

  4. VB.NET开发中遇到的一个小问题

    在修改公司用vb.net的写的代码时,遇到一个小问题 页面上有一个button, ID是btnNext, 在属性页中,它的click事件对应的是cmdNext, 我像在c#中一样,在属性页中双击cmd ...

  5. Android BindService中遇到的一个小问题

    今天在使用BindService的时候遇到个小问题,我希望通过Bindservice获取到这个服务,然后执行服务内的某个自定义方法,如下: if(bindService==null){ Intent ...

  6. php中引用&的一个小实例

    在百度知道上碰到一段关于php的引用符&的代码,对于初学都来说还是很考验理解分析能力的,把代码和自己的分析贴上来作一个备份,也与大家共勉. 代码片段: $arr =array(1,2,3,4) ...

  7. java中泛型的一个小问题

    最近做项目,由于java语法不是非常的熟悉,编写代码过程中不难遇到一些问题: 代码里写了一条这种语句: Map<String, List<String>> configFile ...

  8. [debug] 解决在C++编写过程中的“找到一个或多个多重定义的符号”

    如下图: 其在 common.h 中定义了一个变量a ,然后在两个 cpp 文件中都是用它. 在这种情况下,链接时就会出现 “找到一个或多个多重定义的符号”. 解决方案: 在某个cpp文件中定义,然后 ...

  9. 关于js中 toFixed()的一个小坑

    作为一名前端,大家都应该知道,toFixed()的作用,toFixed()经常用于前台与后台数据格式的转换,套用下w3c上面的定义: 定义和用法toFixed(n) 方法可把 Number 四舍五入为 ...

随机推荐

  1. Java对象的序列化和反序列化[转]

    Java基础学习总结--Java对象的序列化和反序列化 一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化.把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用 ...

  2. 防止vuejs在解析时出现闪烁

    ---## 防止vuejs在解析时出现闪烁 ## 原因: 在使用vuejs.angularjs开发时,经常会遇见在如Chrome这类能够快速解析的浏览器上出现表达式({{ express }} ),或 ...

  3. Android调用相册截取图片遇到的问题

    1.在Android中可以使用如下的方式来调用相册,选择图片进行裁剪使用,昨天在开发的时候遇到一个问题 private void cropBigImageUri(Uri uri, int output ...

  4. SQLServer-镜像配置

    实验环境:三台服务器分别为主服务器,镜像服务器,见证服务器,都加入域sql.com 1. 分别在三台服务器上安装SQL 2008 R2,安装数据库引擎和管理工具两个组件即可. 2. 镜像前准备工作. ...

  5. UE设置 去掉bak备份文件

    使用ue打开文件,修改保存后,会产生.bak备份文件,感觉不爽,如何去掉呢? 1:在ue菜单栏,选择“高级”按钮选项  —— “配置”选项 2:在弹出的选择框中,找到“备份”—— 勾选“不备份” 选项 ...

  6. CF Drazil and His Happy Friends

    Drazil and His Happy Friends time limit per test 2 seconds memory limit per test 256 megabytes input ...

  7. scikit-learn点滴

    scikit-learn点滴 scikit-learn是非常漂亮的一个机器学习库,在某些时候,使用这些库能够大量的节省你的时间,至少,我们用Python,应该是很难写出速度快如斯的代码的. sciki ...

  8. sharepoint 中用自带的download.aspx实现文件的下载,中文文件名编码的问题

    ]中的路径绑定的是下载路径,用到了sharepoint中自带的download.aspx下载页面,只要将文件的URL赋值给sourceurl即可,但是我前台用的是<a>标签的href来导向 ...

  9. over Oracle

    QL code: sql over的作用及用法RANK ( ) OVER ( [query_partition_clause] order_by_clause )DENSE_RANK ( ) OVER ...

  10. Span flag详解

    在android中,如果要实现text的各种样式,图文混排等,简单的样式可以靠几个不同的textview来拼成,而复杂的样式要求,用不同的textview来拼接则不太现 实.这时候就spannable ...