java 中导出Excel

[java] view plaincopy

  1. package oa.common.utils;
  2. import java.io.OutputStream;
  3. import java.util.List;
  4. import javax.servlet.http.HttpServletResponse;
  5. import org.apache.struts2.ServletActionContext;
  6. import java.lang.reflect.Field;
  7. import jxl.Workbook;
  8. import jxl.format.Alignment;
  9. import jxl.format.Border;
  10. import jxl.format.BorderLineStyle;
  11. import jxl.format.VerticalAlignment;
  12. import jxl.write.Label;
  13. import jxl.write.WritableCellFormat;
  14. import jxl.write.WritableFont;
  15. import jxl.write.WritableSheet;
  16. import jxl.write.WritableWorkbook;
  17. /***
  18. * @author lsf
  19. */
  20. public class ExportExcel {
  21. /***************************************************************************
  22. * @param fileName EXCEL文件名称
  23. * @param listTitle EXCEL文件第一行列标题集合
  24. * @param listContent EXCEL文件正文数据集合
  25. * @return
  26. */
  27. public  final static String exportExcel(String fileName,String[] Title, List<Object> listContent) {
  28. String result="系统提示:Excel文件导出成功!";
  29. // 以下开始输出到EXCEL
  30. try {
  31. //定义输出流,以便打开保存对话框______________________begin
  32. HttpServletResponse response=ServletActionContext.getResponse();
  33. OutputStream os = response.getOutputStream();// 取得输出流
  34. response.reset();// 清空输出流
  35. response.setHeader("Content-disposition", "attachment; filename="+ new String(fileName.getBytes("GB2312"),"ISO8859-1"));
  36. // 设定输出文件头
  37. response.setContentType("application/msexcel");// 定义输出类型
  38. //定义输出流,以便打开保存对话框_______________________end
  39. /** **********创建工作簿************ */
  40. WritableWorkbook workbook = Workbook.createWorkbook(os);
  41. /** **********创建工作表************ */
  42. WritableSheet sheet = workbook.createSheet("Sheet1", 0);
  43. /** **********设置纵横打印(默认为纵打)、打印纸***************** */
  44. jxl.SheetSettings sheetset = sheet.getSettings();
  45. sheetset.setProtected(false);
  46. /** ************设置单元格字体************** */
  47. WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);
  48. WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);
  49. /** ************以下设置三种单元格样式,灵活备用************ */
  50. // 用于标题居中
  51. WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);
  52. wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
  53. wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
  54. wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐
  55. wcf_center.setWrap(false); // 文字是否换行
  56. // 用于正文居左
  57. WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);
  58. wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条
  59. wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
  60. wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐
  61. wcf_left.setWrap(false); // 文字是否换行
  62. /** ***************以下是EXCEL开头大标题,暂时省略********************* */
  63. //sheet.mergeCells(0, 0, colWidth, 0);
  64. //sheet.addCell(new Label(0, 0, "XX报表", wcf_center));
  65. /** ***************以下是EXCEL第一行列标题********************* */
  66. for (int i = 0; i < Title.length; i++) {
  67. sheet.addCell(new Label(i, 0,Title[i],wcf_center));
  68. }
  69. /** ***************以下是EXCEL正文数据********************* */
  70. Field[] fields=null;
  71. int i=1;
  72. for(Object obj:listContent){
  73. fields=obj.getClass().getDeclaredFields();
  74. int j=0;
  75. for(Field v:fields){
  76. v.setAccessible(true);
  77. Object va=v.get(obj);
  78. if(va==null){
  79. va="";
  80. }
  81. sheet.addCell(new Label(j, i,va.toString(),wcf_left));
  82. j++;
  83. }
  84. i++;
  85. }
  86. /** **********将以上缓存中的内容写到EXCEL文件中******** */
  87. workbook.write();
  88. /** *********关闭文件************* */
  89. workbook.close();
  90. } catch (Exception e) {
  91. result="系统提示:Excel文件导出失败,原因:"+ e.toString();
  92. System.out.println(result);
  93. e.printStackTrace();
  94. }
  95. return result;
  96. }
  97. }

测试:

  • * 导出excel
    • * @return
    • */
    • public String excelPage(){
    • ExportExcel excel=new ExportExcel();
    • String str="";
    • try {
    • str = new String(getHTTP.getRequest().getParameter("wineOrg.orgName").getBytes("iso8859-1"),"UTF-8");
    • } catch (UnsupportedEncodingException e) {
    • // TODO Auto-generated catch block
    • e.printStackTrace();
    • }
    • wineOrg.setOrgName(str);
    • List<Object> li=service.exportExcel(wineOrg);
    • String[] Title={"机构ID","会员编号","类别","名称","省ID","省名称","城市ID","城市名称","详细地址","联系人","性别","联系手机","联系电话","传真","邮箱","QQ","生日","积分","客户等级","现金账户余额","结算方式","客户类型","购买次数","购买支数","创建人ID","创建人姓名","create_time","del","STS","备注","负责人ID","负责人姓名","审核标识","审核人ID ","审核人姓名","审核日期","分配人ID","分配人姓名","分配日期","修改人ID","修改人姓名  ","修改时间"};
    • excel.exportExcel("客户资料信息.xls",Title, li);
    • return SUCCESS;
    • }
时间: 2024-08-26 10:29:45

java 中导出Excel的相关文章

Java中导出Excel数据,封装Bean

在Java中封装导出Excel数据的总体思路为: 1.导出,根据查询得到的数据(一般我们页面上用的是查询条件带分页的),我们需要把查询条件带到后台重新查询,并且是查询全部数据,不带分页 2.不能用ajax异步提交.应该用location.href=""的方式,把处理的流交给浏览器来处理,JS无法处理流计算. 3.封装统一的Bean实体,主要输入导出的列名,excel名,数据集即可导出. 用到的Maven地址: <!-- poi --> <dependency>

在java中导出excel

package com.huawei.controller; import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.List;import java.util.Map; import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.Htt

重构:以Java POI 导出EXCEL为例

重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的了解重构的意义. 什么是重构? <重构:改善既有代码的设计>这本书中将重构以名词和动词形式进行解释,如下 重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本. 重构(动词):使用一系列重构的手法,在不改变软件可观察行为的前提下,调整其结构.

Java中读取Excel功能实现_POI

这里使用apache的poi进行读取excel 1,新建javaproject 项目:TestExcel 2,导入包 包下载地址:http://poi.apache.org/download.html#POI-3.10-FINAL 百度网盘下载:http://pan.baidu.com/s/1i365mQT 导入根目录下.lib.ooxml-lib下的所有jar 4,操作读取excel import java.io.File; import java.io.IOException; import

Asp.net中导出Excel文档(Gridview)

主要思路,通过GridView来导出文档. 新建一个Aspx页面,页面创建GridView控件,后台绑定好数据源.然后load中直接打印即可导出 前台的GridView <asp:GridView ID="GridView1" BorderColor="Black" runat="server" AutoGenerateColumns="False" Font-Size="12px" Width=&q

ASP.net中导出Excel的简单方法介绍

下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat="server" style="width: 700px; margin-left: auto; margin-right: auto;"> <!--startprint--> <table width="100%" border=&

Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框

在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇文章分别给大家介绍下.(注意,我们这里说的数据导出可不是数据库中的数据导出!么误会啦^_^) 呵呵,首先我们来导出EXCEL格式的文件吧.现在主流的操作Excel文件的开源工具有很多,用得比较多的就是Apache的POI及JExcelAPI.这里我们用Apache POI!我们先去Apach

[ExtJS5学习笔记]第三十四节 sencha extjs 5 grid表格之java后台导出excel

继上次使用js前端导出excel之后,还有一个主要大家比较关注的是后台实现导出excel,因为本人开发使用的java所以这里使用apache的开源项目poi进行后台excel的导出. 本文目录 本文目录 poi项目下载及加载 extjs前端导出设置 extjs后台对应的解决方案 创建excel工作簿 创建一个excel页签 生成excel样式并初始化 产生表格标题行build headers 构造数据行build rows poi项目下载及加载 POI项目是apache官网的一个开源项目,其主要

java导入导出excel常用操作小结及简单示例

POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFSheet sheet = wb.createSheet();    //添加一个sheet,对应Excel文件中的sheet 构造方法可以有参也可以无参wb.createSheet("学生表一") HSSFRow row = sheet.createRow((int) 0);  //she