操作Excel的经典类

简介: package com.css.common.excel; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.u

package com.css.common.excel;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;

import com.css.common.util.DateUtil;
import com.opensymphony.xwork2.ActionSupport;


public class BaseExcelAction extends ActionSupport implements
  ServletResponseAware, ServletContextAware {
 
 private static final Log log = LogFactory.getLog(BaseExcelAction.class);
 private static final long serialVersionUID = 1L;
 private HttpServletResponse response;
 private ServletContext servletContext;

 protected String excelExport() throws Exception {
  response.setContentType("text/html");
  try {
   String contextTitle = "百强问题调查信息表";
   String realPath = servletContext.getRealPath("/");
   log.debug("realPath=" + realPath);

   List columnContextList = new ArrayList();
   // 拼装
   excelExport(realPath, contextTitle, columnContextList);

  } catch (Exception e) {
   log.fatal("导出问卷信息结束", e);
  }
  return NONE;
 }

 /**
  * 从DB中导出数据到Excel
  */
 protected void excelExport(String realPath, String contextTitle,
   List columnContextList) throws Exception, FileNotFoundException,
   IOException {
  
  // 把数据写入Excel
  if (columnContextList != null) {
   String fileName = DateUtil.getLocalDateTime() + ".xls";
   IExcelExport excel = new QuesExcelExportUtil(contextTitle,columnContextList);
   // 1.输出到指定文件夹
   excel.exportExcel(new File(realPath + fileName));

   log.debug("fileName=" + fileName);
   log.debug("恭喜您!Excel导出成功");

   File file = new File(realPath + fileName);

   long _l = file.length();
   InputStream in = new FileInputStream(file);

   if (in != null) {
    response.reset();
    response.setContentType("application/x-msdownload");
    response.setHeader("Content-disposition","attachment; filename=" + fileName);
    
    // 以上输出文件元信息
    response.setContentLength((int) _l); // 设置输入文件长度
    byte[] _b = new byte[2048];
    int _llen = 0;
    while ((_llen = in.read(_b)) > 0) {
     response.getOutputStream().write(_b, 0, _llen); // 向浏览器输出
    }

    in.close(); // 关闭文件输入流
    response.flushBuffer();
   }

   new File(realPath + fileName).delete();
  }
 }
 
 /**
  * 从Excel中导入数据到DB
  */
 protected void excelImport(){
  //
 }

 public void setServletResponse(HttpServletResponse response) {
  this.response = response;
 }

 public void setServletContext(ServletContext servletContext) {
  this.servletContext = servletContext;
 }

}

目录
相关文章
|
7月前
|
Java Apache
EasyPOI操作Excel从零入门
我们不造轮子,只是轮子的搬运工。(其实最好是造轮子,造比别人好的轮子)开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事儿,此处推荐一个别人造好的轮子,EasyPOI封装了Apache的POI技术,实现了基本的Excel导入、导出从此不再为Excel操作头疼~
431 2
EasyPOI操作Excel从零入门
|
7月前
|
存储 数据处理 索引
Python操作Excel常用方法汇总
Python操作Excel常用方法汇总
270 0
|
7月前
|
API
Poi 中文API文档 「40种操作 Excel文件的姿势」
Poi 中文API文档 「40种操作 Excel文件的姿势」
323 0
|
5月前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
6月前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
87 0
Excel如何使用VBA操作引用其它工作簿中的单元格
Excel引用其它工作簿中的单元格的值及使用VBA操作
|
6月前
|
Python
【干货】python xlwt写入excel操作
【干货】python xlwt写入excel操作
|
6月前
|
图形学
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
223 0
|
6月前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之在本地用tunnel命令上传excel表格到mc遇到报错: tunnel upload C:\Users***\Desktop\a.xlsx mc里的非分区表名 -s false;该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
7月前
|
数据挖掘 数据库连接 数据处理
精通Excel意味着熟练掌握基础及进阶操作
精通Excel意味着熟练掌握基础及进阶操作,如数据透视表、VBA编程和自定义公式。提升效率的技巧包括善用快捷键、自动化重复任务、巧用公式与函数(如SUM和VLOOKUP)、利用数据透视表分析数据、设置条件格式、建立数据库连接、编写自定义函数、创建数据图表、使用模板和进行分组汇总。这些方法能有效提升数据分析和处理能力,优化工作效率。
197 2