`

flex 下载Excel文件 fileReference.download 使用servlet

    博客分类:
  • flex
阅读更多

一、使用fileReference.download 下载Excel文件:

 (1)<s:Button label="匯出2" id="export2" click="download()"/>

 

 (2)private function download():void
   {
    var request:URLRequest = new URLRequest(
     "http://localhost:8080/test/exportExcel?service=userService&method=exportUsers&args=-%2C2%2C-%2C-");     //调用servlet
    
    var fileReference:FileReference = new FileReference();
    fileReference.download(request, "excel.xls"); 
   }

 

 (3)

public class ExportExcelServlet extends HttpServlet {
 

 protected void doGet(HttpServletRequest request,
   HttpServletResponse response) {
  doPost(request, response);
 }

 protected void doPost(HttpServletRequest request,
   HttpServletResponse response) {
  
  String serviceName = request.getParameter("service");
  String methodName  = request.getParameter("method");
  String arg         = request.getParameter("args");
  String[] args = new String[0];
  if(null != arg && arg.length() > 0)
   args = arg.split(",");
  
  Object bean = ApplicationContextUtil.getBean(serviceName);
  ExportData data = null;
  try {
   data = (ExportData)invokeMethod(bean, methodName, Arrays.asList(args));

 //调用spring创建的bean
  } catch (Exception e) {
   e.printStackTrace();
  }
  
  // 设置返回数据类型
  response.setContentType("application/vnd.ms-excel;charset=UTF-8");

  // 设置返回的文件名
  response.setHeader("Content-Disposition", "attachment;Filename="
    + "data.xls");
  
  try {
   OutputStream os = response.getOutputStream();
   WritableWorkbook wb = Workbook.createWorkbook(os);
   wb = ExcelUtil.exportExcel(wb, data.getDataList(), data.getFields(), data.getFieldNames());
   wb.write();
   wb.close();
    } catch (IOException e) {
   e.printStackTrace();
  }
  
 }
 
 private Object invokeMethod(Object owner,String methodName,List args) throws Exception{
  
  Class ownerClass = owner.getClass();
  
  Class[] argsClass = new Class[args.size()];
  for(int i = 0; i < args.size(); i++){
   argsClass[i] = args.get(i).getClass();
  }
  
  Method method = ownerClass.getMethod(methodName, argsClass);
  return method.invoke(owner,args.toArray());
 }

 

(4)web.xml:

 <!-- 数据导出 -->
    <servlet>
  <servlet-name>ExportExcelServlet</servlet-name>
  <servlet-class>servlet.ExportExcelServlet</servlet-class>
 </servlet>
 
    <servlet-mapping> 
        <servlet-name>ExportExcelServlet</servlet-name> 
        <url-pattern>/exportExcel</url-pattern> 
    </servlet-mapping>

 

 

分享到:
评论

相关推荐

    flex 怎么检测文件大小.

    在Flex中处理文件大小的检测是开发过程中常见的需求,特别是在上传或下载文件时。以下将详细介绍如何在Flex中检测文件大小。 1. **文件上传的文件大小检测** 在Flex中,用户可以通过FileReference类来实现文件上传...

    Flex导入Excel文件的应用部分代码

    1. **文件读取**:在Flex中,可以使用Flash的FileReference类来与本地文件系统交互,让用户选择要导入的Excel文件。用户选择文件后,FileReference对象的load()方法会被调用,加载选定的文件内容。 2. **数据解析**...

    Flex导出excel文件例子

    在Flex开发中,导出数据到Excel文件是常见的需求,特别是在数据展示和分析场景中。Flex是一种基于ActionScript 3(AS3)的开源框架,主要用于构建富互联网应用程序(RIA)。在本例中,我们将探讨如何使用Flex来导出...

    Flex文件的上传下载.pdf

    在早期版本的Flex中(如Flex 1.5),实现文件的上传与下载相对较为复杂,需要借助Flash Player API中的`FileReference`类。而到了Flex 2及后续版本,这一过程得到了简化,`FileReference`类被整合进了Flex类库中,...

    Flex读Excel文件内容

    当用户选择文件后,可以通过`FileReference.load()`方法加载文件内容到内存中。 - **错误处理**:读取Excel文件时可能出现各种错误,比如文件不存在、格式不正确等,因此你需要添加适当的错误处理机制,捕获并处理...

    flex文件上传下载,在线以pdf形式浏览文件

    当用户点击下载链接时,服务器返回一个包含文件内容的HTTP响应,Flex应用使用FileReference.load方法加载这个响应,然后调用save方法让用户保存到本地。 3. **在线浏览**:在线浏览文件涉及到多种技术。对于文本...

    flex在web端上传和下载文件前后台代码

    2. Flex调用`FileReference.upload()`将文件发送到服务器。 3. Java后端接收到文件并存储,返回确认信息。 4. 用户触发下载请求,Flex发送HTTP GET请求到服务器指定的下载URL。 5. Java后端处理请求,准备文件内容并...

    Flex 文件上传 java是后台服务

    2. 用户选择文件后,`FileReference`对象会触发`select`事件,此时可以通过`FileReference.name`获取选中文件的名称,`FileReference.size`获取文件大小。 3. 调用`FileReference.load()`方法读取文件数据到内存中。...

    flex文件上传下载

    Flex文件上传下载是一种在Web应用中实现文件交互的技术,它主要使用Adobe Flex框架来构建富互联网应用程序(RIA)。Flex提供了一种强大的方式来创建交互式的、图形化的用户界面,其中包括处理文件上传和下载功能。在...

    Flex读取excel

    本文将深入探讨如何使用Flex进行Excel文件的读取与写入操作,并基于提供的代码片段进行详细的分析。 #### 二、基础知识 1. **Flex概述**:Flex是一种开源框架,用于构建跨浏览器、跨平台的应用程序。它提供了丰富...

    Flex+WebService附件上传下载

    4. 对于下载,Flex客户端通过`FileReference.save()`方法触发下载,HTTPHandler读取服务器文件并设置HTTP响应的Content-Disposition头,指示浏览器保存文件。 通过这种方式,Flex和.NET可以实现无缝集成,提供用户...

    Flex完全自学手册24.pdf

    本文旨在详细介绍如何在Flex环境中利用`FileReference`类实现文件的上传与下载操作。 #### 二、技术背景 Flex是一种强大的Web开发框架,能够帮助开发者构建高性能的富互联网应用(RIA)。Flex自2004年发布以来经历了...

    Flex使用as3xlsUTF8.swc库文件导出Excel

    fileReference.save(excel.getBytes(), "output.xls"); ``` 7. **错误处理和优化**:在实际使用中,你还需要考虑错误处理,例如检查文件是否成功保存,以及性能优化,比如批量写入数据以减少I/O操作。 在Flex和...

    flex 上传excel 导入数据库

    你需要创建一个表单组件,如`FileUpload`,让用户选择Excel文件,然后调用`FileReference.load()`方法读取文件内容。 2. **处理Excel数据**:读取Excel文件的数据通常需要第三方库,例如As3Xlsx或ZapExcel等,这些...

    Flex多文件上传+md5验证文件是否上传

    标题“Flex多文件上传+md5验证文件是否上传”揭示了该技术的核心要点:使用Flex来处理多个文件的上传,并通过MD5哈希校验确保上传的文件与原始文件一致,防止数据篡改。 1. **多文件上传**:在Flex中,可以利用...

    flex前台直接导出excel

    6. 使用Flex的URLLoader类或FileReference类,创建一个下载链接,让用户触发文件下载。 需要注意的是,由于前端直接生成Excel文件可能会遇到一些限制,比如文件大小、浏览器兼容性以及安全策略等问题。因此,在实际...

    flex air 导出 excel

    使用FileReference类,可以触发浏览器的下载对话框,让用户保存Excel文件。 5. **处理中文字符**:由于Flex Air直接导出Excel的限制,对于中文字符,需要在服务器端进行处理。使用Apache POI库时,设置正确的字符...

    Flex上传文件与下载

    ### Flex与Servlet结合实现文件上传及下载功能 在Flex与Servlet技术结合的背景下,本文将详细介绍如何通过这两种技术实现文件的上传与下载功能。通过分析提供的代码片段,我们可以看到一个典型的Flex应用程序界面...

    flex3+java文件上传

    1. **创建FileReference对象**:在Flex3中,可以使用FileReference.create()方法创建一个FileReference对象,然后绑定到UI组件(如Button)的click事件上,触发文件选择对话框。 2. **选择文件**:当用户点击按钮并...

Global site tag (gtag.js) - Google Analytics