原文 http://blog.sina.com.cn/s/blog_8c26f28301014z2z.html
最近做一个小东西,用到了rt这样的东西,在网上搜了一下,确实有这个功能,但是对中文的支持不是很好,而且,是针对flex 的,纯的as3项目用它就一直报错,因为as项目里面没有ArrayCollection,也没有那些数据校验的类,网上的朋友有很多资料,在加上我自己的一些问题和解决方法,规整如下
官方as3xls的类包swc:http://code.google.com/p/as3xls/downloads/list
官方as3xls的使用简介:http://code.google.com/p/as3xls/wiki/Tutorial
但是这个类好久没有更新了,对中文的支持很差,国内一些大牛对as3xls类进行了修改,增加了对中文的支持还是非常感谢的。源码和swc下载:http://bbs.9ria.com/viewthread.php?tid=132520&extra=
虽然支持了中文,但是还是不能导出多个sheet,期待大牛继续更新、关注。
这些已经足够用的了,但是用纯的as项目,还是不能用因为没有ArrayCollection,和数据校验的类,我在网上找了很多方法,整合了一些资源,再将这些包直接导入进去http://bbs.9ria.com/viewthread.php?tid=132520&extra=
到这一步,可能还会有 “区域设置“en_US”解析资源束”这样的问题,这个我也遇到了,解决的方法http://blog.sina.com.cn/s/blog_8c26f28301014xtl.html
Ok,这样你就很容易操作你的excel表格了,使用还是很简单的,下面是网友的一个demo
import com.as3xls.xls.ExcelFile;
import com.as3xls.xls.Sheet;
import flash.filesystem.FileStream;
private function saveform():void{
var file:File = new File(File.applicationDirectory.resolvePath("data/Accounting.xls").nativePath);
//读取文件
var stream:FileStream = new FileStream();
stream.open(file,FileMode.READ);
var ba:ByteArray = new ByteArray();
stream.readBytes(ba);
stream.close();
var xls:ExcelFile = new ExcelFile();
xls.loadFromByteArray(ba);
var sheet:Sheet = xls.sheets[0];
var rownow:int = sheet.rows;
//插入新的行
sheet.setCell(rownow,0,"新的数据");
//写文件
var nba:ByteArray = xls.saveToByteArray();
var nstream:FileStream = new FileStream();
nstream.open(file,FileMode.WRITE);
nstream.writeBytes(nba);
nstream.close();
}
import com.as3xls.xls.Sheet;
import flash.filesystem.FileStream;
private function saveform():void{
var file:File = new File(File.applicationDirectory.resolvePath("data/Accounting.xls").nativePath);
//读取文件
var stream:FileStream = new FileStream();
stream.open(file,FileMode.READ);
var ba:ByteArray = new ByteArray();
stream.readBytes(ba);
stream.close();
var xls:ExcelFile = new ExcelFile();
xls.loadFromByteArray(ba);
var sheet:Sheet = xls.sheets[0];
var rownow:int = sheet.rows;
//插入新的行
sheet.setCell(rownow,0,"新的数据");
//写文件
var nba:ByteArray = xls.saveToByteArray();
var nstream:FileStream = new FileStream();
nstream.open(file,FileMode.WRITE);
nstream.writeBytes(nba);
nstream.close();
}