as3xls开源项目的中文乱码问题 转载
来源:互联网 发布:大灰狼8.78钻石版源码 编辑:程序博客网 时间:2024/05/22 14:30
原文地址:http://blog.csdn.net/baijinwen/article/details/3722408
总结:直接把包as3xls.swc 换成了 as3xls-1.0.1.swc 问题就解决了。网上有一些更复杂的办法。有时间再总结一下。
as3xls,read and write Excle in Flex,开源项目首页: http://code.google.com/p/as3xls/
不过它对中文支持的不是很好,不知道现在有没有解决这个问题。有段时间我用过一下,曾经采取一个取巧的方式去解决,但我想并不是很好,如果有谁有更好的解决方法,或者已经对这个东东改造好的,给我一份,嘿嘿。
当初我临时解决的方式就是修改com/as3xls/xls/ExcelFile.as的大概255行那里:
- //var len:uint = String(value).length;
- var len:uint = GetStringLength(String(value)); //Bryan update
- cell.data.writeByte(len);
- //cell.data.writeUTFBytes(value);
- cell.data.writeMultiByte(String(value),"cn-gb"); //Bryan update
增加两个函数:
- //获取一个字符串的长度,如果是中文字符则 为2,其他的为1 bryan add
- private function GetStringLength(objString:String):int
- {
- var temp:int = 0;
- for(var i:int=0;i<objString.length;i++)
- {
- if(isChinese(objString.substring(i,i+1)))
- {
- temp += 2;
- }
- else{temp += 1;}
- }
- return temp;
- }
- //判断是否是中文 bryan add
- private function isChinese(char:String):Boolean{
- if(char == null){
- return false;
- }
- char = trim(char);
- var pattern:RegExp = /^[/u0391-/uFFE5]+$/;
- var result:Object = pattern.exec(char);
- if(result == null) {
- return false;
- }
- return true;
- }
然后就导出
- public function ExportSearchResultToExcel():void
- {
- var list:Array = this.peopleservice.List(this.SqlWhere);
- var temppeople:People;
- if(list != null && list.length > 0)
- {
- if(list.length > 1000)
- {
- Alert.show("考虑到程序运行安全,程序只允许导出树据数量最大为1000.");
- return;
- }
- var excelFile:ExcelFile = new ExcelFile();
- sheet = new Sheet();
- sheet.resize(list.length+1,2);
- sheet.setCell(0, 0, "姓");
- sheet.setCell(0, 1, "名");
- for(var i:int = 0;i<list.length;i++)
- {
- temppeople = People(list[i]);
- if(temppeople != null)
- {
- sheet.setCell(i+1, 0, temppeople.Xing);
- sheet.setCell(i+1, 1, temppeople.Ming);
- }
- }
- excelFile.sheets.addItem(sheet);
- var mbytes:ByteArray = excelFile.saveToByteArray();
- var stream:FileStream = new FileStream();
- var docsDir:File = File.documentsDirectory.resolvePath("Export.xls");
- try
- {
- docsDir.browseForSave("Save As");
- docsDir.addEventListener(Event.SELECT, saveData);
- }
- catch(er:Error)
- {
- Alert.show(er.message);
- }
- function saveData(event:Event):void
- {
- var newFile:File = event.target as File;
- if (!newFile.exists)
- {
- var stream:FileStream = new FileStream();
- stream.open(newFile, FileMode.WRITE);
- stream.writeBytes(mbytes);
- stream.close();
- }
- }
- }
- }
现在导出暂时解决了,但读取Excle档我没办法解决中文问题,所以最终还是放弃了使用as3xls, 采取其他的方法满足用户的需求了。其实也有办法解决的。例如我们可以使用标准的xml格式的Excle档进行上载,就相当于读取一个xml文件一样,但那样已经没有意义了,所以还是放弃了——|||......
- as3xls开源项目的中文乱码问题 转载
- as3xls开源项目的中文乱码问题
- as3xls导出Excel和解决导出中文乱码问题
- 解决读写Excel的第三方类库as3xls无法读取中文和写入中文的问题
- 中文乱码问题的解决方法 转载
- 项目中遇到的中文乱码问题
- Linux中文乱码问题(转载)
- mysql中文乱码问题(转载)
- Java 关于中文乱码问题的解决方案与经验【转载】
- 转载:Java 关于中文乱码问题的解决方案与经验
- 转载 Mysql与JSP网页中文乱码问题的解决方案
- 转载_Linux 下解决中文乱码的问题
- Aptana制作的网页显示中文乱码问题【转载】
- 【转载】jquery getJson 中文字符参数乱码问题的解决办法
- Ubuntu server 中文环境乱码问题的解决办法(转载)
- 【转载】----tomcat7与tomcat8中文乱码的问题
- 项目中的中文乱码问题
- web项目中文乱码问题
- hdu 3584
- FND_REQUEST.SUBMIT_REQUEST in R12
- springmvc develop
- java filter 读取 filter init-param 配置的变量
- 使用TableDiff实用工具解决事务复制中的问题
- as3xls开源项目的中文乱码问题 转载
- Android Gallery图片一张张滑动
- Java中的继承、封装、多态
- Android屏蔽home键
- Oracle For MacOS 安装方法&注意事项
- jQuery 颜色渐变动画效果
- MySQL数据库新特性之存储过程入门教程
- hdu2473
- VC add files to folder失效问题