php中,excel读写数据,utf和unicode编码转换

kimi 发表于 2007-12-18 15:51:32

        今天心情不错,手动更新一篇,顺便借原创稍稍提升一点我在google那边的重视程度,把我的PR再升一点点^^
        写文章前,先把microsoft骂一顿,他家的excel输出的字符都是unicode,而输入unicode的中文居然就不认了,都保存的$#xxxxx的形式,必须转成utf-8或者gb2312才能正常保存为数字,太tm不负责了吧。无奈,只好自己添加编码转换功能。
        发完牢骚,讲正题。
<http://eternalraul.yculblog.com>
        首先要从excel读出数据。有很多现成的excel类都包含读excel的函数,无所谓老外写的还是中国人写的,大家用的都是美国的微软的软件。那就下载一个excel类,搜索“excel_class.php”吧,搜索结果多的铺出来。挑一个信得过的网站下载,防止不良网站的恶意程序载入。初始化类后,使用“Read_Excel_File()”这个函数,具体它怎么实现读excel不是我关心的重点,我只管怎么用...Read_Excel_File函数返回的是一个三维数组,第一维Sheet1是表,后面两维分别是行和列,接下来的操作就看你想怎么用了。
<http://eternalraul.yculblog.com>
        如果要显示在IE上,那直接echo返回的字符就ok了,中文,英语和数字的显示都正常。然后当你得意地将这些字符都保存到txt中,就傻眼了。中文全部变成了&#xxxxx...靠!unicode编码....看网页上的源代码,果然如此。只不过ie聪明伶俐,认得这些unicode编码,让你看上去中文显示是正常的,仅看上去而已。
<http://eternalraul.yculblog.com>
        接着,去下载转编码的函数吧,大牛当然可以研究unicode编码规律自己写转换函数啦。我下载了别人的u2utf82gb()函数,这个又是铺天盖地的多,最早的原版我是从一个老外的博客那儿看到的,人家可是02年就挂到网上了,估计中国人都是沿袭那个版本的吧。函数还算好用,不过函数的输入必须是编码的数字,不带&#两个字符这点要记住,否则会判断出错,不转换,输出的还是unicode码!
<http://eternalraul.yculblog.com>
        用这个函数转好的应该是utf-8格式的字符,如果在gb2312下还是会出问题,需要再用一句指令来转gb2312了,$a=iconv('utf-8','gb2312//IGNORE',$a); 现在无论是保存txt也好,写到另一个excel也好,发布到网页上也好,都没什么问题了吧:)
当然这么一系列操作下来也会有点小问题,本来在excel中保存的数字型,例如“123”,被强制转换成了字符型的“123”,存回excel后数字型的列不能直接排序。不过,万恶的微软总算做了点有人性的事,excel有自动将字符型的数字转回数字型的功能,所以只需操作1步就可以解决问题了。
<http://eternalraul.yculblog.com>
        当然,办法不只有一种啦~我一般都先推出复杂的办法,咔咔~接下来就教最简单的办法。打开下载好的类,查找$s = uc2html($exc->sst['data'][$ind]);修改为$s = iconv('utf-16le','utf-8',$exc->sst['data'][$ind]);得解。
        如果还有什么问题的话,欢迎与我交流,我的博客的地址,嘿嘿,大家都看了好多遍了,防止盗链嘛~有说的不对的地方,欢迎大家与我交流,虚心接受指导。
关键词(Tag): 转换 编码 utf unicode excel php


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

  • 2007-12-18 16:38:26

    继续加油!


  • 马耿
    2007-12-23 17:54:20 匿名 61.171.*.*

    吴亮,我爱你


  • 马耿
    2008-01-01 00:45:09 匿名 207.46.*.*

    无耻的加连接


  • haha123_0
    2008-02-20 11:08:51 匿名 124.227.*.* http://www.im1111.com

    谢谢哦,找了一天,这个最简单,在类里面改一行搞定。,万分感谢。

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定

团队共享BLOG