- 浏览: 703123 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (389)
- flex (150)
- java (55)
- flex_sharedObject (4)
- iphone/android (7)
- red5 (4)
- blazeds (19)
- ajax (3)
- flex&java (9)
- 聊天室 (2)
- flex的问题 (1)
- game (8)
- flex_xml (1)
- flex组件学习 (2)
- JGroups (1)
- 中转站 (2)
- ruby (7)
- flex_js (5)
- C/C++ (14)
- perl (2)
- db (13)
- air (10)
- hibernate (8)
- flash_flex_as_3d (2)
- struts (4)
- dwr (8)
- freemarker (2)
- AS (22)
- 工具 (6)
- js_jquery_ext_yui (4)
- .net (1)
- C# (1)
- 前端 (1)
最新评论
-
136900923:
您好,您的代码我不是很懂,我想跟您交流一下,我的qq邮箱:13 ...
hibernate做无限极菜单树如此简单 -
fykyx521:
两个同一个功能
flex_flush_Socket 安全沙箱解决 -
ustb:
你上下两个代码类之间没关系
flex_flush_Socket 安全沙箱解决 -
u010656335:
...
flex发送QQ表情 -
u010656335:
flex发送QQ表情
http://blog.csdn.net/Baijinwen/archive/2009/01/06/3722408.aspx
as3xls开源项目的中文乱码问题 收藏
<script type="text/javascript"> document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text"); if (text && text.length>300) { text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href; clipboardData.setData("text", text); } }, 100); } } </script><script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
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
增加两个函数:
package cn.ishion.excel.util
{
import com.as3xls.biff.BIFFVersion;
import com.as3xls.biff.BIFFWriter;
import com.as3xls.biff.Record;
import com.as3xls.xls.ExcelFile;
import com.as3xls.xls.Sheet;
import com.as3xls.xls.Type;
import flash.utils.ByteArray;
import mx.utils.StringUtil;
//注释
public class ConstomExcelFile extends ExcelFile
{
public function ConstomExcelFile()
{
}
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 = StringUtil.trim(char);
var pattern:RegExp = /^[\u0391-\uFFE5]+$/;
var result:Object = pattern.exec(char);
if(result == null) {
return false;
}
return true;
}
override public function saveToByteArray():ByteArray{
// var s:Sheet = _sheets[0] as Sheet; //这行源代码 改成如下
var s:Sheet =super.sheets[0] as Sheet;
var br:BIFFWriter = new BIFFWriter();
// Write the BOF and header records
var bof:Record = new Record(Type.BOF);
bof.data.writeShort(BIFFVersion.BIFF2);
bof.data.writeByte(0);
bof.data.writeByte(0x10);
br.writeTag(bof);
// Date mode
var dateMode:Record = new Record(Type.DATEMODE);
dateMode.data.writeShort(1);
br.writeTag(dateMode);
// Store built in formats
var formats:Array = ["General",
"0", "0.00", ",0", ",0.00",
"", "", "", "",
"0%", "0.00%", "0.00E+00",
"?/?", "??/??",
"M/D/YY", "D-MMM-YY", "D-MMM", "MMM-YY"];
var numfmt:Record = new Record(Type.BUILTINFMTCOUNT);
numfmt.data.writeShort(formats.length);
br.writeTag(numfmt);
for(var n:uint = 0; n < formats.length; n++) {
var fmt:Record = new Record(Type.FORMAT);
fmt.data.writeByte(formats[n].length);
fmt.data.writeUTFBytes(formats[n]);
br.writeTag(fmt);
}
var dimensions:Record = new Record(Type.DIMENSIONS);
dimensions.data.writeShort(0);
dimensions.data.writeShort(s.rows+1);
dimensions.data.writeShort(0);
dimensions.data.writeShort(s.cols+1);
br.writeTag(dimensions);
for(var r:uint = 0; r < s.rows; r++) {
for(var c:uint = 0; c < s.cols; c++) {
var value:* = s.getCell(r, c).value;
var cell:Record = new Record(1);
cell.data.writeShort(r);
cell.data.writeShort(c);
if(value is Date) {
var dateNum:Number = (value.time / 86400000) + 24106.667;
cell.type = Type.NUMBER;
cell.data.writeByte(0);
cell.data.writeByte(15);
cell.data.writeByte(0);
cell.data.writeDouble(dateNum);
} else if(isNaN(Number(value)) == false && String(value) != "") {
cell.type = Type.NUMBER;
cell.data.writeByte(0);
cell.data.writeByte(0);
cell.data.writeByte(0);
cell.data.writeDouble(value);
} else if(String(value).length > 0) {
cell.type = Type.LABEL;
cell.data.writeByte(0);
cell.data.writeByte(0);
cell.data.writeByte(0);
// var len:uint = String(value).length; //源文 改成如下
var len:uint=this.GetStringLength(value);
cell.data.writeByte(len);
// cell.data.writeUTFBytes(value);//这行源代码 改成如下
cell.data.writeMultiByte(value,"gbk");
} else {
cell.type = Type.BLANK;
cell.data.writeByte(0);
cell.data.writeByte(0);
cell.data.writeByte(0);
}
br.writeTag(cell);
}
}
// Finally, the closing EOF record
var eof:Record = new Record(Type.EOF);
br.writeTag(eof);
br.stream.position = 0;
return br.stream;
}
}
}
示例private function exportExcel():void{
var ex:ExcelFile=new ConstomExcelFile();
var arr:ArrayCollection=new ArrayCollection();
var sheet:Sheet=new Sheet();
sheet.header="dsafsdafsaf";
sheet.footer="foot";
sheet.name="hello";
sheet.resize(10,10);
for(var i:int=0;i<10;i++){
sheet.setCell(i,i,"大家好");
trace(ex.sheets);
}
ex.sheets.addItem(sheet);
var file:File=File.desktopDirectory.resolvePath("test333.xls");
var fs:FileStream=new FileStream();
fs.open(file,FileMode.WRITE);
fs.writeBytes(ex.saveToByteArray());
fs.close();
}
评论
// line 122
cell.data.writeByte(len);
楼主有没想过, 如果 len 超过了 byte 的范围,cell里的内容仍然能显示完整吗 ?
发表评论
-
转深入理解Flash的沙箱 – Security Domains
2014-01-22 09:35 785一篇很经典的进阶文章,国外牛人的分享,清晰明了,图文并茂,适 ... -
flex 很有用的东东!
2010-06-17 23:50 1229网上找了好久,原来API中就有! -
flex出现的一些问题
2010-04-08 12:19 16301.kingnarestyle.swf和flexlib 的Su ... -
flex 样式工作原理【转】
2010-04-08 12:09 1283http://hi.baidu.com/ls_mcx/blog ... -
在FlexBuilder3中使用Actionscript3进行元编程
2010-03-11 19:15 1000http://flash.9ria.com/thread-46 ... -
Error: No class registered for interface mx
2010-02-01 09:36 1206http://www.gold98.net/blog/arti ... -
Flash 视频(FLV)编码,转换,录制,播放方案一网打尽
2010-01-16 18:34 1972http://www.htmlit.com.cn/post/8 ... -
FLEX中使用FLVPlayback控件.
2010-01-16 18:29 1359http://www.cnblogs.com/xxcainia ... -
flex 继承Application及xml命名空间
2009-12-30 18:43 1481<?xml version="1.0" ... -
flex Repeater effert加效果
2009-12-15 17:25 1461package cn.ishion.component { ... -
学习自定义组件---ConstomButton
2009-12-14 15:06 1736效果只是让Button动了下, 上传了flash源文件 p ... -
flex编译生成的As代码
2009-12-09 18:30 1280new flexProject ->起名叫 test ... -
flex自定义preloader
2009-12-09 17:43 1883package cn.ishion.component { ... -
flex自定义程序 preloader 加载多个资源
2009-12-09 02:05 2224package cn.ishion.component { ... -
Flex Builder编译错误An internal build error has occurred的解决方法
2009-12-05 16:44 3173原文:http://as3blog.com/resources ... -
flex uicomponent.addChild(Button) Button不显示
2009-12-04 19:23 2105设置下Button的宽度和高度就行了 var ui:U ... -
FlashDevelop配置Flex4(gumbo)环境
2009-12-04 10:27 3018http://www.flexrain.cn/fl ... -
flex gooogle code as3xls导出数据到excel
2009-12-03 19:16 2317var ex:ExcelFile=new ExcelFile ... -
Flex坐标系统及转换
2009-12-02 22:10 3059http://flash.9ria.com/thread-40 ... -
flex动态切换皮肤
2009-11-23 18:06 1986http://www.cnblogs.com/mobile/a ...
相关推荐
通过as3xls导入导出Excel文件的工程代码,含目前口碑最好的as3xls源代码。
为了方便大家使用我就直接把例子项目给上传, lib文件夹下有包 代码只需改一行就可以(里面有注释,改字符集的...可以改成你所想要的任何语言(我测试过日语,韩语,中文都没有乱码) 希望对大家有所帮助 给个好评谢谢
TOAD导出EXCEL文件时中文乱码解决办法.txt
flex中的as3xls读写excel的代码
flex/as3写的一个操作excel案例,里面包括了as3xlsUTF.swc,可以操作中文字符。
工程源代码 .还修改过google代码上没有更新的一些后期bug 博文链接:https://jhaij.iteye.com/blog/792786
xls导出excel的jar包.rar
easyPoi模板导出Excel报表(xls 和xlsx 都支持)
as3xls是actionscript3操作excel的开源lib 官方网址http://code.google.com/p/as3xls/ 官方版本目前不支持中文 本包对将ExcelFile类中的saveToByteArray()改为saveToByteArray(charset:String ="cn-gb")以支持各种...
Flex DataGrid导出成excel的方法,介绍了导出的两种方式poi和as3xls
as3xls-1.0.1.swc包文件直接拷贝到libs目录即可使用,相关代码也附上。
操作excel和word的包,多做工具用。如果excel的行列中有中文,操作中文的问题,请您百度。
用VB导出excel 的方法
as3读取excel的类包,用flex读取excel文件
尝试写一个flex下载excel文件的air工程,引用此as3xls.swc文件
1、as3xls源代码 2、svn 下载标准版as3xls-1.0.
为了减轻服务器的压力,很多网站采用的js下载或导出数据的方式。 该文件就是利用javascript把json数据转换成excel数据后,并进行了下载。 真实可用,而且使用起来方便快捷,为了开发快速,可以下载看看。 里面有教程...
导入导出Excel方法,工具类.很详细注释很多,下载就可以使用,首先还要做出你要导出的Excel模板,标题,字段对应好
使用C#实现了excel表格的导出功能,包含xls和xlsx两种格式。 程序有添加关于NOPI的引用,有疑问可以参考我的csdn博客http://blog.csdn.net/my_clear_mind
本资源为用于flex导入或导出excel的类库as3xls,现存网上的类库as3xls最大问题是对中文不够支持,虽然网上早已支持中文的as3xls,但存在最大三个问题: 1:在导入excel操作中,如果excel的公式里带中文的,则该公式...