[Flex] as3xls读取excel,修改保存单表(二)
这个方法仅用了as3xls读取excel的功能,修改保存独立出来了。
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="initViews(event)" width="1024" height="1000">
<fx:Script>
<![CDATA[
import com.as3xls.xls.ExcelFile;
import com.as3xls.xls.Sheet; import mx.events.FlexEvent; private var _headerArr:Array = [];
private var _dataArr:Array = [];
protected function initViews(event:FlexEvent):void
{
var file:File = new File("E:/AS/Examples/ReadAndSaveExcel/src/样表.xls");
//读取文件
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);
trace(xls.sheets.length);
var sheet:Sheet = xls.sheets[1];
var rowLen:int = sheet.rows;
var cloumnLen:int = sheet.cols;
//trace(sheet.getCell(0,0).value,sheet.getCell(0,1).value,sheet.getCell(2,0).value);
trace(rowLen,cloumnLen); for(var i:int = 0;i<cloumnLen;i++){
_headerArr.push(sheet.getCell(0,i).value);
}
for(var j:int = 0;j<_headerArr.length;j++){
var title:TextField = getText(120,20,_headerArr[j]);
title.x = j*120+100;
title.y =0;
container.addChild(title);
} for(j = 1;j<rowLen;j++){
if(sheet.getCell(j,i).value == ""){
//trace("为空");
}else{ }
var obj:Object = {};
for(i = 0;i<_headerArr.length;i++){
if(i == 3){
obj[_headerArr[i]] = Math.floor(Math.random()*2000).toString();
}else{
obj[_headerArr[i]] = sheet.getCell(j,i).value;
}
}
_dataArr.push(obj);
var count:int = 0;
for(var n:int = 0;n<_headerArr.length;n++){
var t:TextField = getText(120,20,obj[_headerArr[n]]);
t.x = 120*count+100;
t.y = 20*j;
count++;
container.addChild(t);
}
}
}
protected function saveBtn_clickHandler(event:MouseEvent):void
{
save(_dataArr,_headerArr,_headerArr);
}
private function save(datas:Array,headerArr:Array,objArr:Array):void
{
var xlsStr:String = "<html><head></head><body><table>";
xlsStr += "<tr>";
for each(var fieldHead:String in headerArr)
{
xlsStr += "<td>" + fieldHead + "</td>";
}
xlsStr += "</tr>";
for each(var item:Object in datas)
{
xlsStr += "<tr>";
for each(var field:String in objArr)
{
xlsStr += "<td>" + item[field] + "</td>";
}
xlsStr += "</tr>";
}
xlsStr += "</table></body></html>"; var bytes:ByteArray = new ByteArray();
//bytes.writeUTFBytes(xlsStr);
bytes.writeMultiByte(xlsStr, "GB2312");
new FileReference().save(bytes, "data.xlsx"); //运用File可以达到同样效果,而且不用弹出保存对话框
/*var file:File = File.desktopDirectory.resolvePath("data.xls");
var fs:FileStream = new FileStream();
fs.open(file, flash.filesystem.FileMode.WRITE);
fs.writeMultiByte(xlsStr,"GB2312");
fs.close();*/
} private function getText(w:Number,h:Number,text:String):TextField
{
var t:TextField = new TextField();
t.width = w;
t.height = h;
//t.autoSize = "center";
t.selectable = false;
t.border = true;
t.text = text;
return t;
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:Scroller width="900" height="800">
<s:Group width="100%" height="100%">
<mx:UIComponent id="container" width="800" height="100%"/>
</s:Group>
</s:Scroller>
<s:Button id="saveBtn" label="保存" left="910" top="10" click="saveBtn_clickHandler(event)"> </s:Button>
</s:WindowedApplication>
[Flex] as3xls读取excel,修改保存单表(二)的更多相关文章
- [Flex] as3xls读取excel,修改保存单表(一)
经过大神修改过的as3xls支持中文,并可以修改保存单一sheet,保存后原有的excel样式均会消失,目前仅能如此. <?xml version="1.0" encodin ...
- 读取Excel数据到Table表中
方法一: try { List<DBUtility.CommandInfo> list = new List<DBUtility.CommandInfo>(); string ...
- ABAP 读取EXCEL文件到内表
1.选择excel文件: PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY. AT SELECTION-SCREEN ON VALUE-REQUES ...
- Sqlserver 读取EXCEL
1.1 启用本地读取设置 --启用EXEC sp_configure 'show advanced options', 1RECONFIGUREEXEC sp_configure 'Ad Hoc Di ...
- sql2008读取excel
环境:win7(64位)+sql2008 sql语句: --启用Ad Hoc Distributed Queries: reconfigure reconfigure --使用完成后,关闭Ad Hoc ...
- C#中Form窗体中读取EXCEL的数据
使用OLEDB可以对excel文件进行读取,我们只要把该excel文件作为数据源即可 首先引用Microsoft.EXEL 代码如下: using System; using System.Colle ...
- php读取excel文件 更新修改excel
php读取excel文件示例,还有更新修改功能. 代码: //模板存放目录 $dir = $DOCUMENT_ROOT.'/backoffice/admin/oemcheck/'; $template ...
- C#读取Excel表中的数据时,为何有些行的字段内容读取不到
转载:http://bbs.csdn.net/topics/360220285 1.当某列数据中含有混合类型时,在.NET中使用Microsoft.Jet.OLEDB.4.0来读取Excel文件造成数 ...
- 【转】Python xlrd、xlwt、xlutils读取、修改Excel文件
Python xlrd.xlwt.xlutils读取.修改Excel文件 一.xlrd读取excel 这里介绍一个不错的包xlrs,可以工作在任何平台.这也就意味着你可以在Linux下读取Excel文 ...
随机推荐
- Linux复制指定目录及子目录下特定类型的文件
首先建立一个用于测试的目录,用'tree'命令查看其结构如下所示: 可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*.tes文件 目标是保持当前的目录结构,只把txt文件复制出来 方法一 ...
- java 实现mysql数据库导出
package com.zbb.util; import java.io.BufferedReader;import java.io.File;import java.io.FileInputStre ...
- C#Winform中treeView控件使用总结
1.如何展开结点时改变图标(注意:不是选中时) 要在目录中使用图标首先要加入一个控件ImageList(命名为imageList1),然后可以按图片的index或名称引用图片. 然后需要在TreeVi ...
- HDP2.4安装(一):Centos7安装
在进入大数据领域来,一直使用微软的Azure HDInsight,当前在中国区仅支持在Windows系统上部署集群,虽然创建的过程很简单,但对于开发人员来说,就是一个黑盒子,在更深入的研究和开发扩展的 ...
- 无需添加引用执行JS,发布无需带DLL、例子:QQMD5 QQGTK 13位时间戳 取随机数
javascriptDemo.rar 本人写POST经常会遇到用JS来加密的一些网站,然后又不想用C#重写.在百度和论坛里找的JS执行不是64位不支持就是要带个DLL神马的.很讨厌.然后自己就写了个不 ...
- Neutron GRE模式要注意的问题
GRE模式下,如果MTU和Offloading配置不当,会严重降低网络性能(https://ask.openstack.org/en/question/6140/quantum-neutron-gre ...
- bzoj2178: 圆的面积并
Description 给出N个圆,求其面积并 Input 先给一个数字N ,N< = 1000 接下来是N行是圆的圆心,半径,其绝对值均为小于1000的整数 Output 面积并,保留三位小数 ...
- bzoj1043 下落的圆盘
Description 有n个圆盘从天而降,后面落下的可以盖住前面的.求最后形成的封闭区域的周长.看下面这副图, 所有的红色线条的总长度即为所求. Input 第一行为1个整数n,N<=100 ...
- php ord和chr函数
直接上代码 //通过ord()函数获取字符的ASCII码值,如果返回值大于 127则表示为中文字符的一半,再获取后一半组合成一个完整字符 $string = "hello不要迷恋哥world ...
- Saltstack系列1:安装配置
安装 安装EPEL作为安装Ansible的yum源(CentOS6.4) rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release ...