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. 小白日记23:kali渗透测试之提权(三)--WCE、fgdump、mimikatz

    WCE windows身份认证过程 http://wenku.baidu.com/view/cf2ee127a5e9856a56126017.html #特例在登陆的目标服务器/系统,有一个w摘要安全 ...

  2. 小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描

    端口扫描 二三四层发现的目的只是为了准确发现所有活着主机IP,确定攻击面,端口扫描即发现攻击点,发现开放端口.端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入.[所有的扫描结果,都不要完全相 ...

  3. Android(java)学习笔记108:通过反射获取私有构造方法并且使用

    反射获取私有构造方法并且使用: 1.获取字节码文件.class对象:          Class c = Class.forName("cn.itcast_01.Person") ...

  4. [改善Java代码]用偶判断,不用奇判断

    建议21: 用偶判断,不用奇判断 public class Client { public static void main(String[] args) { Scanner in = new Sca ...

  5. hdu 4670 树的点分治

    思路:首先当然是要用树的点分治了.根节点为root,那么经过root的合法路径数求出来这题就解决了.因为我们可以用分治枚举根,最后将所有根的路径数加起来就是结果.当然这里的根不是整棵树的根,是子树根. ...

  6. hdu 4614 线段树

    思路:当k为1的时候,用二分法查询包含有f个空瓶的上界r,然后更新会方便很多,直接更新区间(a,r)了. #include<iostream> #include<cstdio> ...

  7. css3 盒模型记

    css3 盒模型 css假定每个元素都会生成一个或多个矩形框,这称为元素框.各元素框中心有一个内容区.这个内容区周围有可选的内边距,边框和外边距.这些项之所以被认为是可选的,原因是它们的宽度可以设置为 ...

  8. framework7学习笔记

    最近因项目需要学习framework7,简称F7.对于自己遇到的问题和学习到的东西做个简单记录. 问题:刚开始获取json,页面上一直不显示,不得其法,原来是json文件需要在弹出层打开之后在来加载, ...

  9. MyBatis(3.2.3) - Configuring MyBatis using XML, Environment

    The key component of MyBatis is SqlSessionFactory from which we get SqlSession and execute the mappe ...

  10. SignalR 2.0入门

    下载已完成的项目 本教程展示如何使用那么 SignalR 创建一个实时聊天应用程序.你会那么 SignalR 添加一个空的 ASP.NET web 应用程序,创建一个 HTML 页面发送并显示消息. ...