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. android 几个小技巧

    1.如果打开模拟器,不同程序打开了不同的模拟器.可能是某个某个模拟器的target版本过低,修改一下4.2,应该都可以用了 2.找不到R.id.的错误,不妨删除menu文件夹下的xml文件 3.act ...

  2. java命令模式

    命令模式 Command Pattern(Another Name:Action,Transaction) Encapsulate a request as an object ,thereby le ...

  3. 关于错位动画的练习,原生js编写

    最近在网上看到一个关于错位动画的文章,感觉非常有趣,便自己练习了一下,文章连接:http://www.w3cplus.com/animation/staggering-animations.html ...

  4. 利用OPENSSL 实现MD5加密。

    #include <stdio.h> #include "openssl/evp.h" #include "openssl/md5.h" #incl ...

  5. Java事件总线

    在平时写代码的过程中,我们需要实现这样一种功能:当执行某个逻辑时,希望能够进行其他逻辑的处理.最粗暴的方法是直接依赖其他模块,调用该模块的相应函数或者方法.但是,这样做带来一些问题. 模块间相互依赖, ...

  6. Mac环境下svn的使用(转载)

    在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还 ...

  7. Commons CLI - Usage

    Usage Scenarios The following sections describe some example scenarios on how to use CLI in applicat ...

  8. 第五篇、微信小程序-swiper组件

    常用属性: 效果图: swiper.wxml添加代码: <swiper indicator-dots="{{indicatorDots}}" autoplay="{ ...

  9. Objective-C 【内存管理&手动内存管理 综述】

    ------------------------------------------- 内存管理 (1)Objective-C的内存管理 栈区    存放局部变量(由于基本数据类型占用的存储空间是固定 ...

  10. Dreamweaver标签库

    .highlight .hll { background-color: #ffffcc } .highlight { background: #ffffff } .highlight .c { col ...