- 浏览: 4411565 次
- 性别:
- 来自: 湛江
博客专栏
-
SQLite源码剖析
浏览量:80123
-
WIN32汇编语言学习应用...
浏览量:70327
-
神奇的perl
浏览量:103580
-
lucene等搜索引擎解析...
浏览量:286537
-
深入lucene3.5源码...
浏览量:15043
-
VB.NET并行与分布式编...
浏览量:67780
-
silverlight 5...
浏览量:32289
-
算法下午茶系列
浏览量:46075
文章分类
最新评论
-
yoyo837:
counters15 写道目前只支持IE吗?插件的东西是跨浏览 ...
Silverlight 5 轻松开启绚丽的网页3D世界 -
shuiyunbing:
直接在前台导出方式:excel中的单元格样式怎么处理,比如某行 ...
Flex导出Excel -
di1984HIT:
写的很好~
lucene入门-索引网页 -
rjguanwen:
在win7 64位操作系统下,pygtk的Entry无法输入怎 ...
pygtk-entry -
ldl_xz:
http://www.9958.pw/post/php_exc ...
PHPExcel常用方法汇总(转载)
Flex前端+Java后台,要将Flex界面中AdvancedDataGrid的数据导出成Excel文件。有2种方法:
1.直接在前台导出。
使用开源项目as3xls,下载个解决了中文乱码的as3xlsUTF8.swc包,加到Flex工程的引用库中。
AS代码,点击“导出Excel”按钮后的函数:
- var sheet:Sheet = new Sheet();
- private function export2ExcelHandel(e:MouseEvent):void
- {
- //在前台生成Excel
- var excelFile:ExcelFile=new ExcelFile();
- var arr:ArrayCollection=myTable.dataProvider as ArrayCollection;
- for(var i:int=0; i<arr.length; i++)
- {
- var obj:Object=arr[i];
- var j:int=0;
- for(var key:String in obj)
- {
- excelFile.sheets.addItem(generateSheet(0,j,key));
- excelFile.sheets.addItem(generateSheet(i,j,obj[key]));
- j++;
- }
- }
- var mbytes:ByteArray=excelFile.saveToByteArray();
- var file:FileReference=new FileReference();
- file.save(mbytes,"测试文件.xls");
- }
- function generateSheet(i:int,j:int,o:Object):Sheet{
- if(!sheet){
- sheet = new Sheet();
- sheet.resize(10,10);
- }
- sheet.setCell(i, j, String(o));
- return sheet;
- }
var sheet:Sheet = new Sheet(); private function export2ExcelHandel(e:MouseEvent):void { //在前台生成Excel var excelFile:ExcelFile=new ExcelFile(); var arr:ArrayCollection=myTable.dataProvider as ArrayCollection; for(var i:int=0; i<arr.length; i++) { var obj:Object=arr[i]; var j:int=0; for(var key:String in obj) { excelFile.sheets.addItem(generateSheet(0,j,key)); excelFile.sheets.addItem(generateSheet(i,j,obj[key])); j++; } } var mbytes:ByteArray=excelFile.saveToByteArray(); var file:FileReference=new FileReference(); file.save(mbytes,"测试文件.xls"); } function generateSheet(i:int,j:int,o:Object):Sheet{ if(!sheet){ sheet = new Sheet(); sheet.resize(10,10); } sheet.setCell(i, j, String(o)); return sheet; }
FileReference的save方法在Flash10才支持,
在Flex工程上右键,属性,Flex Conpiler中把Require Flash Player version:填为10.0.0;在Flex Build Path中加入playerglobal.swc
,路径为…\sdks\3.2.0\frameworks\libs\player\10\playerglobal.swc
2.通过调JSP或Servlet导出。
AS代码:
- public static function ToExcel(dg:AdvancedDataGrid,name:String)
- {
- //调用JSP
- var url:String="http://localhost:8080/XXX/Export/ExcelExport.jsp";
- var variables:URLVariables = new URLVariables();
- variables.htmltable = convertDGToHTMLTable(dg);
- var u:URLRequest = new URLRequest(url);
- u.data = variables;
- u.method = URLRequestMethod.POST;
- navigateToURL(u,"_self");
- }
- private static function convertDGToHTMLTable(dg:AdvancedDataGrid):String {
- //Set default values
- var font:String = dg.getStyle('fontFamily');
- var size:String = dg.getStyle('fontSize');
- var str:String = '';
- var colors:String = '';
- var style:String = 'style="font-family:'+font+';font-size:'+size+'pt;"';
- var hcolor:Array;
- //Retrieve the headercolor
- if(dg.getStyle("headerColor") != undefined) {
- hcolor = [dg.getStyle("headerColor")];
- } else {
- hcolor = dg.getStyle("headerColors");
- }
- str+= '<head><meta http-equiv="Content-Type" content="text/htm; charset=utf-8"></head><table width="'+dg.width+'" border="1"><thead><tr width="'+dg.width+'" style="background-color:#' +Number((hcolor[0])).toString(16)+'">';
- for(var i:int = 0;i<dg.columns.length;i++) {
- colors = dg.getStyle("themeColor");
- if(dg.columns[i].headerText != undefined) {
- str+="<th "+style+">"+dg.columns[i].headerText+"</th>";
- } else {
- str+= "<th "+style+">"+dg.columns[i].dataField+"</th>";
- }
- }
- str += "</tr></thead><tbody>";
- colors = dg.getStyle("alternatingRowColors");
- for(var j:int =0;j<dg.dataProvider.length;j++)
- {
- str+="<tr width=\""+Math.ceil(dg.width)+"\">";
- for(var k:int=0; k < dg.columns.length; k++) {
- if(dg.dataProvider.getItemAt(j) != undefined && dg.dataProvider.getItemAt(j) != null) {
- if(dg.columns[k].labelFunction != undefined) {
- str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.columns[k].labelFunction(dg.dataProvider.getItemAt(j),dg.columns[k].dataField)+"</td>";
- }
- else {
- str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.dataProvider.getItemAt(j)[dg.columns[k].dataField]+"</td>";
- }
- }
- }
- str += "</tr>";
- }
- str+="</tbody></table>";
- return str;
- }
public static function ToExcel(dg:AdvancedDataGrid,name:String) { //调用JSP var url:String="http://localhost:8080/XXX/Export/ExcelExport.jsp"; var variables:URLVariables = new URLVariables(); variables.htmltable = convertDGToHTMLTable(dg); var u:URLRequest = new URLRequest(url); u.data = variables; u.method = URLRequestMethod.POST; navigateToURL(u,"_self"); } private static function convertDGToHTMLTable(dg:AdvancedDataGrid):String { //Set default values var font:String = dg.getStyle('fontFamily'); var size:String = dg.getStyle('fontSize'); var str:String = ''; var colors:String = ''; var style:String = 'style="font-family:'+font+';font-size:'+size+'pt;"'; var hcolor:Array; //Retrieve the headercolor if(dg.getStyle("headerColor") != undefined) { hcolor = [dg.getStyle("headerColor")]; } else { hcolor = dg.getStyle("headerColors"); } str+= '<head><meta http-equiv="Content-Type" content="text/htm; charset=utf-8"></head><table width="'+dg.width+'" border="1"><thead><tr width="'+dg.width+'" style="background-color:#' +Number((hcolor[0])).toString(16)+'">'; for(var i:int = 0;i<dg.columns.length;i++) { colors = dg.getStyle("themeColor"); if(dg.columns[i].headerText != undefined) { str+="<th "+style+">"+dg.columns[i].headerText+"</th>"; } else { str+= "<th "+style+">"+dg.columns[i].dataField+"</th>"; } } str += "</tr></thead><tbody>"; colors = dg.getStyle("alternatingRowColors"); for(var j:int =0;j<dg.dataProvider.length;j++) { str+="<tr width=\""+Math.ceil(dg.width)+"\">"; for(var k:int=0; k < dg.columns.length; k++) { if(dg.dataProvider.getItemAt(j) != undefined && dg.dataProvider.getItemAt(j) != null) { if(dg.columns[k].labelFunction != undefined) { str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.columns[k].labelFunction(dg.dataProvider.getItemAt(j),dg.columns[k].dataField)+"</td>"; } else { str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.dataProvider.getItemAt(j)[dg.columns[k].dataField]+"</td>"; } } } str += "</tr>"; } str+="</tbody></table>"; return str; }
ExcelExport.jsp放在后台XXX工程的WebRoot下的Export文件夹中。
ExcelExport.jsp:
- <%@ page language="java"%>
- <%@ page contentType="application/msexcel;charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%
- request.setCharacterEncoding("UTF-8");
- //String instr=request.getParameter("filename");
- response.setHeader("Content-disposition","attachment; filename=excel.xls");
- response.setCharacterEncoding("UTF-8");
- String str = request.getParameter("htmltable");
- out.print(str);
- %>
评论
7 楼
shuiyunbing
2015-01-14
直接在前台导出方式:
excel中的单元格样式怎么处理,比如某行字体加粗,背景样色标记为红色。
excel中的单元格样式怎么处理,比如某行字体加粗,背景样色标记为红色。
6 楼
shanyejunjie
2013-08-22
shanyejunjie 写道
存在日期字段labelfunction时,到这不走了,如何解决?
if(dg.columns[k].labelFunction != undefined) {
str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.columns[k].labelFunction(dg.dataProvider.getItemAt(j),dg.columns[k].dataField)+"</td>";
if(dg.columns[k].labelFunction != undefined) {
str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.columns[k].labelFunction(dg.dataProvider.getItemAt(j),dg.columns[k].dataField)+"</td>";
解决了,改成这样
if(dg.columns[k].labelFunction != undefined) {
str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.columns[k].labelFunction(dg.dataProvider.getItemAt(j),dg.columns[k])+"</td>";
5 楼
shanyejunjie
2013-08-22
存在日期字段labelfunction时,到这不走了,如何解决?
if(dg.columns[k].labelFunction != undefined) {
str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.columns[k].labelFunction(dg.dataProvider.getItemAt(j),dg.columns[k].dataField)+"</td>";
if(dg.columns[k].labelFunction != undefined) {
str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.columns[k].labelFunction(dg.dataProvider.getItemAt(j),dg.columns[k].dataField)+"</td>";
4 楼
dimg_ren
2013-07-10
导出很长的文本时,被截断到75个汉字了,不知如何解决?
debug在sheet里都还是正常的,但是存成文件打开就截断了。
debug在sheet里都还是正常的,但是存成文件打开就截断了。
3 楼
henchong
2013-04-23
用office excel 2007 打开是空白的,没有数据
解决方法是将
out.print(str);
换成
java.io.OutputStream os = response.getOutputStream();
os.write(str.getBytes("GBK"));
os.flush();
os.close();
而且把编码格式需要换成GBK(可能不需要,没测试)
单击打开的时候
“您尝试打开的文件“导出文件.xls”格式与扩展名指定的格式不一致。打开文件前请验证文件没有损坏且来源可信。是否立即打开?”
这个问题还没解决
解决方法是将
out.print(str);
换成
java.io.OutputStream os = response.getOutputStream();
os.write(str.getBytes("GBK"));
os.flush();
os.close();
而且把编码格式需要换成GBK(可能不需要,没测试)
单击打开的时候
“您尝试打开的文件“导出文件.xls”格式与扩展名指定的格式不一致。打开文件前请验证文件没有损坏且来源可信。是否立即打开?”
这个问题还没解决
2 楼
henchong
2013-04-23
用office excel 2007 打开是空白的,没有数据
解决方法是将
out.print(str);
换成
java.io.OutputStream os = response.getOutputStream();
os.write(str.getBytes("GBK"));
os.flush();
os.close();
而且把编码格式需要换成GBK(可能不需要,没测试)
单击打开的时候
“您尝试打开的文件“导出文件.xls”格式与扩展名指定的格式不一致。打开文件前请验证文件没有损坏且来源可信。是否立即打开?”
这个问题还没解决
解决方法是将
out.print(str);
换成
java.io.OutputStream os = response.getOutputStream();
os.write(str.getBytes("GBK"));
os.flush();
os.close();
而且把编码格式需要换成GBK(可能不需要,没测试)
单击打开的时候
“您尝试打开的文件“导出文件.xls”格式与扩展名指定的格式不一致。打开文件前请验证文件没有损坏且来源可信。是否立即打开?”
这个问题还没解决
1 楼
henchong
2013-04-23
用office 2007打开
在单击打开的时候会提示
“您尝试打开的文件“导出文件.xls”格式与扩展名指定的格式不一致。打开文件前请验证文件没有损坏且来源可信。是否立即打开?”
选择是,但里面的数据什么都看不了,全是空白的。
在单击打开的时候会提示
“您尝试打开的文件“导出文件.xls”格式与扩展名指定的格式不一致。打开文件前请验证文件没有损坏且来源可信。是否立即打开?”
选择是,但里面的数据什么都看不了,全是空白的。
发表评论
-
pb串口编程
2013-03-21 16:08 2867powerbuilder串口编程的实 ... -
Firebug-firefox下的编辑JS的利器
2013-02-10 18:54 4705Firebug是一个Firefox插件,集HTML查看和编辑 ... -
15 个顶级 HTML5 游戏引擎
2013-02-10 12:30 54361) HTML5 Game Engine Constr ... -
perl-opengl几何变换函数
2013-02-01 10:48 1778#!/usr/bin/perl -w use strict ... -
lisp-format初步格式输出和数字判定
2012-12-24 16:46 20160] (format t "~a~%~a" ... -
lisp-学习笔记(1)
2012-12-21 17:24 1100入门 -
Silverlight 5 轻松开启绚丽的网页3D世界
2012-04-13 16:00 6029Silverlight 5已正式发布,新版本的最大亮点是通过引 ... -
flex连接mysql数据库
2012-03-31 20:30 3703<?xml version="1.0&qu ... -
内存的常用分配方式
2012-03-19 13:45 1456第一,静态分配,所有名字在编译时绑定某个存储位置。不能在运行时 ... -
弹出窗口的命令总结
2011-08-15 17:21 1512弹出窗口的命令总结 window.open win ... -
用erlang写的一个在erlang上跑的脚本语言-LGPL协议
2010-12-28 15:09 2839-module(pparser). -export([s ... -
erlang-读取文件-2
2010-12-16 21:36 34061.compile and run Eshell ... -
erlang-读取文件
2010-12-14 21:28 2390List a a.push(x) 为tes ... -
ubuntu手动安装erlang R14B01-亲自实验可行无报错
2010-12-14 20:40 2228erlang R14B01不能通过新立得安装,因此必须进行手动 ... -
erlang-fun匿名函数做参数和返回
2010-12-04 19:48 4651一、做参数 1> Mynum=fun(X)->( ... -
erlang-函数-递归
2010-12-02 22:28 16269> c(myadd). {ok ... -
erlang-模块与函数
2010-12-01 21:54 1699-module(myadd). -export([madd/ ... -
java-package-转
2010-09-19 11:55 1667在刚开始学java的时候,有很多人搞不清: 在java中,含有 ... -
神奇的Perl-哈希和数组(7)
2010-07-17 20:20 2464声明:本神奇的Perl系列为刘兴(http://deepfut ... -
java-面向连接数据包socket api
2010-03-14 10:42 2656类 DatagramSocket 可以做 ...
相关推荐
使用as3xls-1.0.1.SWC包做的Flex界面DateGrid数据导出Excel表格。
标题与描述:“FLEX导出EXCEL支持合并隐藏单元格” 该标题与描述明确指出了一个关键的功能点:在Flex框架下开发的应用程序能够导出数据到Excel,并且这一过程支持对单元格进行合并以及隐藏特定单元格的能力。这对于...
AdvancedDataGrid导出复杂表头excel
标题中的“flex导出excel”指的是使用Adobe Flex技术来生成并导出Excel文件。Flex是一种基于ActionScript的开源框架,主要用于构建富互联网应用程序(RIA)。它允许开发者使用MXML和ActionScript编写用户界面,然后...
flex 导出excel工具包 用法如下: import com.as3xls.xls.ExcelFile; import com.as3xls.xls.Sheet; import mx.collections.ArrayCollection; import mx.controls.DataGrid; import mx.controls.dataGridClasses....
Flex利用JSP导出Excel Flex利用JSP导出Excel
标题中的“Flex导出Excel之as3xls”指的是在Adobe Flex应用中,使用as3xls库来实现将数据导出为Microsoft Excel文件的功能。as3xls是一个开源的ActionScript 3库,它允许Flex开发者在客户端创建和操作Excel文档,而...
<![CDATA[ import mx.controls.CheckBox; import mx.controls.Alert;... 导出" click="onCreate()"/> (data as Object)} " /> </mx:DataGridColumn> </mx:WindowedApplication>
flex导出成excel部分代码
在Flex中导出Excel文件,通常分为以下几个步骤: 1. **集成as3xls库**:首先,你需要将as3xls库添加到你的Flex项目中。这可以通过将as3xls的SWC文件引入到你的类路径中完成。在Flex Builder或IntelliJ IDEA等IDE中...
"flex前台直接导出excel"这个话题,指的是在使用Adobe Flex这一前端框架时,如何直接在客户端生成并导出Excel文件,而不需要通过服务器端如JSP或Java进行处理。这种方式可以避免因为字符编码问题导致的乱码,同时也...
Flex前端+Java后台,要将Flex界面中AdvancedDataGrid的数据导出成Excel文件。有2种方法:
要实现Flex Air导出Excel的功能,通常需要借助第三方库或者服务。一种常见的方法是使用Apache POI库,这是一个Java库,可以用来创建、修改Microsoft Office文件,包括Excel。虽然Flex本身是基于ActionScript,但可以...
导出Excel的过程通常涉及以下几个步骤: 1. 数据准备:收集adgDataGrid中的数据,包括列名和对应的数据行。对于多层标题头,你需要获取每一层标题的信息,并且组织成Excel能识别的格式。 2. 创建Excel工作簿对象:...
1. 数据导出至Excel.doc(包括当前导出方法小结,自己的示例,参考的网站) 2. poi-3.7-20101029.jar:当前最新的稳定的操作Excel的开发包 3. AirExcel.rar,as3xls.rar:air下Excel开发包 4. csvlib-1.4.1.rar:生成...
虽然上述代码描述了一个基本的Flex导出Excel文件的实现过程,但实际应用中可能会遇到各种问题,比如数据格式化、文件兼容性、性能优化等。开发者在使用时需要根据实际情况调整和完善代码。此外,Flex作为Adobe的技术...
在Flex Air应用中导出Excel并支持中文是一项常见的需求,特别是在数据可视化和报表生成的场景下。Flex Air是Adobe提供的一款基于Flash Player的桌面应用程序开发框架,它允许开发者创建具有丰富用户界面的桌面应用...
flex中dataGrid导出数据到excel中,不存在乱码问题