PHP 简易导出excel 类解决Excel 打开乱码
2013-08-23 10:44
323 查看
<?php class exportCsv{ //列名 protected $_column = array(); protected $_reg = array(); public $ret = ""; public function setColumn($colunms){ foreach ($colunms as $k => $colunm){ $this->_column[$k] = $colunm['title']; $this->_reg[$k]['reg'] = $colunm['reg']; $this->_reg[$k]['colunm'] = $colunm['name']; } return $this; } public function bulidData($data){ $this->ret = implode(",", $this->_column); foreach($data as $k=>$dat){ if(!empty($this->_reg)){ $dat = call_user_func_array(array($this, 'doFilter') , array($dat)); } $this->ret .= " \n".implode(",", $dat); } } public function transport($name="default"){ header("Content-Disposition: attachment; filename={$name}.csv"); header("Content-Type:APPLICATION/OCTET-STREAM"); $bomHeader = pack('H*','EFBBBF'); //将bom头转换二进制放在所有字符顶部,可以解决office Excel打开是乱码的问题 die($bomHeader.$this->ret); } private function doFilter($data){ foreach($this->_reg as $k =>$fun){ if( $data[$fun['colunm']] && method_exists($this,$fun['reg'])){ $data[$fun['colunm']] = $this->$fun['reg']($data[$fun['colunm']]); } } return $data; } //格式化时间戳 private function dataFormate($timestamp){ return date("Y-m-d",$timestamp); } //去除换行 private function htmlFormate($content){ return str_replace(array("\n","\t\n"), array(" "," "), $content); } }
使用方法:
$columnArr = array( 0=>array('title'=>'ID','name'=>'cid'), array('title'=>'用户名','name'=>'uid'), array('title'=>'评论内容','name'=>'comments','reg'=>'htmlFormate'), array('title'=>'评分', 'name'=>'satisfaction', 'reg' =>'int'), array('title'=>'商品编码', 'name'=>'goods_sn', 'reg' =>'int'), array('title'=>'添加时间','name'=>'add_time','reg'=>'dataFormate'), array('title'=>'审核状态','name'=>'status') ); import ( "@.ORG.exportCsv" ); $csvModel = new exportCsv(); $csvModel->setColumn($columnArr); set_time_limit(0); $comments = $model->table('mall_comments mc')->where($map)->field('cid,uid,comments,satisfaction,goods_sn,add_time,status')->select(); $csvModel->bulidData($comments);
相关文章推荐
- php将mysql数据表(含中文数据)导出生成excel表,快速生成且解决中文乱码问题。
- JAVA以UTF-8导出CSV文件,用excel打开产生乱码的解决方法
- PHP 导出Excel一点小经验 解决乱码问题.
- PHP 导出Excel一点小经验 解决乱码问题
- 解决PHP文件(word/excel)下载 内容打开乱码问题
- PHP 导出Excel一点小经验:解决乱码问题
- 解决在IE下使用PHPExcel导出时的文件名中文乱码问题
- phpexcel导出excel中文乱码问题解决
- 导出CSV格式文件,用Excel打开乱码的解决办法
- 解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
- 导出CSV格式文件,用Excel打开乱码的解决办法
- 基于PHP导出Excel的小经验 完美解决乱码问题
- PHP excel导出乱码问题解决办法
- phpexcel 导出到xls文件的时候出现乱码解决
- 具体讲解PHP导出Excel乱码的解决方法
- JAVA以UTF-8导出CSV文件,用excel打开产生乱码的解决方法
- 解决php导出csv文件打开乱码的问题
- C# 导出 Excel 2003 打开乱码解决办法 希望能帮到大家
- 基于PHP导出Excel的小经验 完美解决乱码问题
- 导出CSV格式文件,用Excel打开乱码的解决办法