加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex导入Excel文件示例

发布时间:2020-12-15 05:18:24 所属栏目:百科 来源:网络整理
导读:? 1.SDK3.0 2.导入文件用FileFilter过滤。由于是示例,只写了xls 3.导入文件解析在Java端完成,前端在导入之后,从session中得到导入文件的解析结果,然后再调用Java方法销毁session [代码] [Flash/ActionScript/Flex]代码 ? 01 ?xml version= "1.0" encodin
?
1.SDK3.0
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

}

?

仅供参考

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读