PHP中常用的Excel文件访问类及修改

原创 2006年05月18日 14:04:00

        近日,由于手头项目需要解析web提交的excel文件,不得不看看这个在php中使用比较广泛的excel访问类了。之所以说它使用广泛,是后来在网上查找问题解决方法时才知道它的使用面的。

        首先说遇到的问题。问题是这样的:原函数中的处理方式是将多字节编码的内容全部转换为&#开头的十进制编码了,这样在web上显示时当然没问题,甚至可以说很好,因为不会出现乱码。但目前我面临的问题是要将excel文件中的数据解析,然后导入到数据库,主要用途也就是数据的批量处理,但导入到数据库后的数据需要在web方式下进行编辑之类的处理,当然不能让用户看到的是以&#开头的十进制编码内容了。如何将从excel文件中解析出来的数据转换为中文编码就是问题所在。注释掉原程序中的转换逻辑,返回在web页面上的是一组乱码,对照excel的16进制源文件,发现它们是一致的。由于以&#开头的十进制编码对应的数字就是该字符的unicode十进制编码,可知excel文件是以unicode编码存储的。知道其编码就好办了,在php中直接用iconv函数转换为目标编码即可:iconv('utf-16', 'gb2312', $str)。但测试用mbstring转换时出现了问题,直接用mb_convert_encoding($str, 'gb2312', 'utf-16')得到的仍然是乱码!问题在哪里?反复测试后,总算发现症结所在,未注意编码的“字节序”,再看excel源文件,其字节序采用的是little-endian,即低字节在前的“小尾”方式,将函数的参数改为:mb_convert_encoding($ret, 'gb2312', 'utf-16le'),问题就解决了!看来iconv函数有一个自动检测系统字节序的功能,而mbstring函数则需要明确地指定才行。

         现将修改后的代码和原代码及使用说明一并打包放到网上的,以下为链接:Excel处理

       ( 如若侵犯了程序原作者的版权,请作者与我联系,我将即时删除文件。此文另见PHP中常用的Excel文件访问类及修改)

相关文章推荐

PHP上传文件类及实例

  • 2010年05月24日 12:23
  • 3KB
  • 下载

VS2005操作excel所需的类及文件

1.     VS2005添加COM Project-> addclass -> MFC -> MFC CLASS FROM TypeLib 选择:_Application/_Workbo...

VS2005操作excel所需的类及文件

1.     VS2005添加COM Project-> addclass -> MFC -> MFC CLASS FROM TypeLib 选择:_Application/_Workbook/_...

php 常用验证类及正则

php 常用验证类及正则

PHP 遍历文件夹及文件类及处理类

FindFile.class.php 用于遍历目录文件 [php] view plain copy print? /** 遍历文件夹及文件类 *   Dat...

javaweb常用工具类及配置文件备份

Javaweb常用工具类及配置文件备份 做一个代码备份,以后常用到的。   hibernate工具类备份   packag...
  • xiaoduc
  • xiaoduc
  • 2015年12月13日 20:39
  • 857

java常用类解析五:IO系统File类及文件搜索工具类

1、先看一个File类的简单的例子 package test; import java.io.File; import java.io.FilenameFilter; import java.ut...

项目实战篇-餐馆管理系统—MFC,PHP,MySql:3.MFC端Person类及个人信息修改

餐馆管理系统 MFC 类 PHP MYSQL 项目实战

【IO流】File类及递归算法访问文件

1. File类 File类的对象表示了磁盘上的文件或目录 File类提供了平台无关的方法对磁盘上的文件或目录进行操作 File类直接处理文件和文件系统,比如删除文件,获取文件长度大小等信息 File...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP中常用的Excel文件访问类及修改
举报原因:
原因补充:

(最多只允许输入30个字)