phpexcel 字符串转码

问题状况:在导入excel的时候会出现

PHPExcel_RichText Object ( [_richTextElements:PHPExcel_RichText:private] => Array ( [0] => PHPExcel_RichText_Run Object ( [_font:PHPExcel_RichText_Run:private] => PHPExcel_Style_Font Object ( [_name:protected] => 細明體 [_size:protected] => 12 [_bold:protected] => [_italic:protected] => [_superScript:protected] => [_subScript:protected] => [_underline:protected] => none [_strikethrough:protected] => [_color:protected] => PHPExcel_Style_Color Object ( [_argb:protected] => FF000000 [_parentPropertyName:protected] => [_isSupervisor:protected] => [_parent:protected] => ) [_isSupervisor:protected] => [_parent:protected] => [colorIndex] => 8 ) [_text:PHPExcel_RichText_TextElement:private] => 蜜糖皇后暖色胭脂 ) [1] => PHPExcel_RichText_Run Object ( [_font:PHPExcel_RichText_Run:private] => PHPExcel_Style_Font Object ( [_name:protected] => Calibri [_size:protected] => 12 [_bold:protected] => [_italic:protected] => [_superScript:protected] => [_subScript:protected] => [_underline:protected] => none [_strikethrough:protected] => [_color:protected] => PHPExcel_Style_Color Object ( [_argb:protected] => FF000000 [_parentPropertyName:protected] => [_isSupervisor:protected] => [_parent:protected] => ) [_isSupervisor:protected] => [_parent:protected] => [colorIndex] => 8 ) [_text:PHPExcel_RichText_TextElement:private] => The Honey Queen Honeycomb Blusher ) ) )

解决办法

import("Org.Util.PHPExcel");   // 这里不能漏掉
 import("Org.Util.PHPExcel.IOFactory");
$objReader = \PHPExcel_IOFactory::createReader(‘Excel5‘);
$objPHPExcel = $objReader->load($file_name,$encode=‘utf-8‘);
 /******   上面的代码可以不用看,下面的才是处理的重点     ******/
 // 获取excel C2的文本
$cell = $objPHPExcel->getActiveSheet()->getCell(‘C2‘)->getValue();
 // 开始格式化
 if(is_object($cell))  $cell= $cell->__toString();

事例参考 $file_name=“xxx.xls”

public function excel($file_name){
        //$file_name= ‘./Upload/excel/123456.xls‘;
        import("Org.Util.PHPExcel");   // 这里不能漏掉
        import("Org.Util.PHPExcel.IOFactory");
        $objReader = \PHPExcel_IOFactory::createReader(‘Excel5‘);
        $objPHPExcel = $objReader->load($file_name,$encode=‘utf-8‘);
        $sheet = $objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow(); // 取得总行数
        $highestColumn = $sheet->getHighestColumn(); // 取得总列数

        for($i=1;$i<$highestRow+1;$i++){
            $data[$i][‘a‘] = $objPHPExcel->getActiveSheet()->getCell(‘A‘.$i)->getValue();
            $data[$i][‘b‘] = $objPHPExcel->getActiveSheet()->getCell(‘B‘.$i)->getValue();
            $data[$i][‘c‘] = $objPHPExcel->getActiveSheet()->getCell(‘C‘.$i)->getValue();
            $data[$i][‘d‘] = $objPHPExcel->getActiveSheet()->getCell(‘D‘.$i)->getValue();
            $data[$i][‘e‘] = $objPHPExcel->getActiveSheet()->getCell(‘E‘.$i)->getValue();
            $data[$i][‘f‘] = $objPHPExcel->getActiveSheet()->getCell(‘F‘.$i)->getValue();
            $data[$i][‘g‘] = $objPHPExcel->getActiveSheet()->getCell(‘G‘.$i)->getValue();

            //格式化数据
            if(is_object($data[$i][‘a‘]))  $data[$i][‘a‘]= $data[$i][‘a‘]->__toString();
            if(is_object($data[$i][‘b‘]))  $data[$i][‘b‘]= $data[$i][‘b‘]->__toString();
            if(is_object($data[$i][‘c‘]))  $data[$i][‘c‘]= $data[$i][‘c‘]->__toString();
            if(is_object($data[$i][‘d‘]))  $data[$i][‘d‘]= $data[$i][‘d‘]->__toString();
            if(is_object($data[$i][‘e‘]))  $data[$i][‘e‘]= $data[$i][‘e‘]->__toString();
            if(is_object($data[$i][‘f‘]))  $data[$i][‘f‘]= $data[$i][‘f‘]->__toString();
            if(is_object($data[$i][‘g‘]))  $data[$i][‘g‘]= $data[$i][‘g‘]->__toString();
        }

        return $data;

    }
时间: 2024-10-12 02:56:42

phpexcel 字符串转码的相关文章

采集之字符串转码问题

今天遇到一个问题,经过几个小时的找错,最终确定为编码错误,原来编码错误也不可以插入数据库.原因是我采集拿到的数据是gb2312 ,而数据库是utf8的,所以一直纳闷为什么打印出来的sql没有问题,但是就是不能插入数据库,如果把sql拿出来直接运行的话,是可以成功的.最后,还是在一个哥的提醒下,让我意识到的,因为在我看来,如果编码错误,执行sql应该是错误的,但是却没有想到,凡是汉字的字段全部取消,这也许是经验问题,我想下次肯定就碰不到了. 通过gb2312 采集的页面,插入utf8的数据,str

iOS 字符串转码+解压

最近遇到这样的一个问题,从服务器上返回的字符串是经过压缩的.下面记录下解决方法 // // ViewController.m // 字符串解压缩 // // Created by 杜甲 on 14-5-8. // Copyright (c) 2014年 杜甲. All rights reserved. // #import "ViewController.h" #import "LFCGzipUtillity.h" @interface ViewController

字符串ASCII码排序

在对接第三方支付渠道的时候,第三方会要求参数按照ASCII码从小到大排序. 如下是渠道方有关生成签名规则的java代码示例: //初始化0010merkey.private文件: String merchantprivatekey; merchantprivatekey=PayCfg.getValue("0010merchantprivatekey"); // 将要签名的数据传给map TreeMap map = new TreeMap(); StringBuffer sbf = ne

安卓学习-其他-字符串转码工具

import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ public static final String US_ASCII = "US-ASCII"; /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */ public static fina

[C/C++]_[VS2010使用源代码UTF8中国字符串转码ANSI问题]

场景: 1.思想vs设置源文件UTF8编码,的代码串中国出现在它必须是utf8编码.不幸的是没有,假设源代码出现在中国字符串,在内存公交码ANSI编码. Unicode(UTF8) 代码页(65001).从菜单->文件->高级保存选项 设置. 样例: char path[] = "resources\\中文\\"; for(int i = 0; i < strlen(path); ++i) { printf("0x%x,",(unsigned ch

java 字符串 转码

//xmlStr 为需要转码的字符串 UTF-8 可改为不同的编码格式 如:GBK //亲测可用 仅供参考 String xmlStrs=""; try{ xmlStrs=new String(xmlStr.getBytes("ISO8859-1"),"UTF-8"); }catch(UnsupportedEncodingException uee){}

Java_Web___字符串转码String.getBytes()和new String()——(转)

转载自:http://zhuhuide2004.iteye.com/blog/562739:转载请注明原作者地址: 在Java中,String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如 byte[] b_gbk = "中".getBytes("GBK"); byte[] b_utf8 = "中".getBytes("UTF-8"); byte[]

后台构建 html 字符串传到前台字符串转码(html)处理

知识在于总结,那就记下了吧! 例如后台 html 字符串是 var htmlStr="后台html字符串": 转码 var html格式代码=decodeHtml(htmlStr); 只需调用下面这个js方法就行了 function decodeHtml(s) { var HTML_DECODE = { "<": "<", ">": ">", "&": &

字符串源码里的方法浅释

Str字符串的方法: 1.       首先创造一个字符串有两种方法 S=”123” or s=name S1=str(123) 2.首字母变大写的方法capitalize() >>> s="alex" >>> s1=s.capitalize() >>> print(s1) Alex 3.字符串的casefold()方法—>恢复字符串创建时的原始值 可以通过以下代码敲出来可以看到 #首先创建一个字符串s,让它的首字符变为大写,