Flex导入Excel文件示例
来源:互联网 发布:ubuntu直接安装deb 编辑:程序博客网 时间:2024/06/07 10:12
2.导入文件用FileFilter过滤。由于是示例,只写了xls
3.导入文件解析在Java端完成,前端在导入之后,从session中得到导入文件的解析结果,然后再调用Java方法销毁session
[代码] [Flash/ActionScript/Flex]代码
01
<?xml version=
"1.0"
encoding=
"utf-8"
?>
02
<mx:Application xmlns:mx=
"http://www.adobe.com/2006/mxml"
layout=
"absolute"
>
03
<mx:Script>
04
<![CDATA[
05
import
mx.rpc.remoting.mxml.RemoteObject;
06
import
mx.collections.ArrayCollection;
07
import
mx.controls.Alert;
08
import
mx.rpc.events.FaultEvent;
09
import
mx.rpc.events.ResultEvent;
10
private
var
fileRefer:FileReference =
new
FileReference()
11
//浏览按钮,选择文件
12
private
function
importClick(event:MouseEvent):
void
{
13
//过滤文件
14
var
fileType:FileFilter =
new
FileFilter(
"Excel"
,
"*.xls"
);
15
var
fileTypes:
Array
=
new
Array
(fileType);
16
//导入
17
fileRefer.addEventListener(Event.SELECT,parseExcel);
18
fileRefer.browse(fileTypes);
19
}
20
21
private
function
parseExcel(evt:Event):
void
{
22
//调用Servlet
23
var
url:URLRequest=
new
URLRequest(
"/web/ExcelUp?loadType=parseExcel"
);
24
fileRefer.upload(url);
25
//定时器 获取session
26
setTimeout(
function
():
void
{
27
readfromflex();
28
},
3000
);
29
}
30
//Remote对象
31
private
var
ro:RemoteObject=
new
RemoteObject(
"operdisp_display_excelImportService"
);
32
//获取session
33
private
function
readfromflex():
void
{
34
ro.showBusyCursor =
true
;
35
ro.getExcelSession();
36
ro.getExcelSession.addEventListener(ResultEvent.RESULT, getExcelResult);
37
ro.getExcelSession.addEventListener(FaultEvent.FAULT, setFault);
38
}
39
//回调
40
private
function
getExcelResult(e:ResultEvent):
void
{
41
if
(e.result !=
null
) {
42
var
arr:ArrayCollection = e.result
as
ArrayCollection;
43
//打印导入的excel中的数据
44
log.debug(arr);
45
//销毁session
46
distorySession();
47
}
else
{
48
readfromflex();
49
}
50
}
51
//销毁session
52
private
function
distorySession():
void
{
53
ro.showBusyCursor =
true
;
54
ro.distorySession();
55
ro.distorySession.addEventListener(ResultEvent.RESULT, distorySuccess);
56
ro.distorySession.addEventListener(FaultEvent.FAULT, setFault);
57
}
58
59
private
function
distorySuccess(e:ResultEvent):
void
{
60
61
}
62
private
function
setFault(e:FaultEvent):
void
{
63
Alert.yesLabel=
"确认"
;
64
}
65
]]>
66
</mx:Script>
67
<mx:Button
label
=
"导入"
click=
"importClick(event)"
>
68
</mx:Button>
69
</mx:Application>
[代码] [Java]代码
01
package
demo
02
03
import
java.io.ByteArrayOutputStream;
04
import
java.io.IOException;
05
import
java.io.InputStream;
06
import
java.util.Iterator;
07
import
java.util.List;
08
09
import
javax.servlet.ServletException;
10
import
javax.servlet.http.HttpServlet;
11
import
javax.servlet.http.HttpServletRequest;
12
import
javax.servlet.http.HttpServletResponse;
13
14
import
org.apache.commons.fileupload.FileItem;
15
import
org.apache.commons.fileupload.disk.DiskFileItemFactory;
16
import
org.apache.commons.fileupload.servlet.ServletFileUpload;
17
18
import
demo.invoke.demoServiceInvoke;
19
import
epm.core.model.SysUserInfo;
20
import
epm.sp.priv.user.webapp.util.UserUtil;
21
@SuppressWarnings
(
"unchecked"
)
22
public
class
ExcelServlet
extends
HttpServlet {
23
24
private
static
final
long
serialVersionUID = 678209845731804056L;
25
26
27
@Override
28
protected
void
doPost(HttpServletRequest request,
29
HttpServletResponse response)
throws
ServletException, IOException {
30
doGet(request, response);
31
}
32
33
@Override
34
protected
void
doGet(HttpServletRequest request,
35
HttpServletResponse response)
throws
ServletException, IOException {
36
request.setCharacterEncoding(
"UTF-8"
);
37
String loadType = request.getParameter(
"loadType"
);
38
try
{
39
if
(
"parseExcel"
.endsWith(loadType)) {
40
parseExcel(request, response);
41
}
42
}
43
catch
(Exception e) {
44
e.printStackTrace();
45
}
46
}
47
48
//导入excel
49
public
void
parseExcel(HttpServletRequest request,HttpServletResponse response)
throws
Exception {
50
DiskFileItemFactory factory =
new
DiskFileItemFactory();
51
ServletFileUpload fileUp =
new
ServletFileUpload(factory);
52
fileUp.setSizeMax(
1024
*
1025
*
1024
);
53
List items = fileUp.parseRequest(request);
54
Iterator iter = items.iterator();
55
while
(iter.hasNext()) {
56
FileItem item = (FileItem) iter.next();
57
if
(!item.isFormField()) {
58
InputStream stream = item.getInputStream();
59
ByteArrayOutputStream out =
new
ByteArrayOutputStream(
1000
);
60
byte
[] b =
new
byte
[
1000
];
61
int
n;
62
while
((n = stream.read(b)) != -
1
)
63
out.write(b,
0
, n);
64
stream.close();
65
out.close();
66
out.toByteArray();
67
byte
[] file = out.toByteArray();
68
try
{
69
demoServiceInvoke.Invoke service = demoServiceInvoke.getInstance(request);
70
List list = service.getExcel(file, acOrgNo);
71
request.getSession().setAttribute(
"recordInfo"
, list);
72
request.getSession().setAttribute(
"error"
,
""
);
73
}
catch
(Exception e) {
74
request.getSession().setAttribute(
"recordInfo"
,
null
);
75
request.getSession().setAttribute(
"error"
, e.getMessage());
76
}
77
}
78
}
79
}
80
}
仅供参考
- Flex导入Excel文件示例
- Flex4 导入Excel文件示例
- flex前台界面导入excel文件的actionscript代码
- java导入Excel示例
- tp3.2中多个excel文件上传导入数据库示例
- PHP上传Excel文件导入数据到MySQL数据库示例
- Flex TXT文件导入
- EXCEL导入sql示例2
- ThinkPHP Excel导入导出示例
- 如何导入Excel 文件
- EXCEL文件导入DATAWINDOW
- js导入Excel文件
- excel文件导入sql
- PB导入EXCEL文件
- postgreSQL导入excel文件
- winfrom导入excel文件
- struts2 excel文件导入
- php导入excel文件
- java读取properties
- 码农
- 本博客姐妹博客
- Windows Azure Traffic Manager的新的管理API
- 下载安装android系统的官方网站
- Flex导入Excel文件示例
- Asp.net 在三层架构中事务的使用
- 一句话评论设计模式六大原则
- 关于URL或JS中的URL传参中文乱码问题
- 【整理】mysql安装过程完全图解
- 字符串的长度
- 多线程同步与互斥(3)
- 一个大量TIME_WAIT解决办法
- CButtonBitmap用法总结