Struts2导出Excel

原创 2013年12月06日 10:40:24

//这Action里的java代码

@SuppressWarnings("unchecked")

    public String createExcelLength() throws IOException,
            InvocationTargetException {
        System.out.println(inputStream);
        List<Map> list = null;
        Map map = new HashMap();// 装载分页函数需要的参数,里边包含每页多少条,第几页,查询条件
        map.put("rows", (rows)); // 放入每页条数
        map.put("page", (this.page)); // 放入当前页码
        map.put("begdate", this.begdate); // 放入开始时间
        map.put("enddate", this.enddate); // 放入结束时间
        map.put("chanelId", this.chanelId); // 放入频道id
        map.put("saleId", this.saleId); // 放入sale_id
        list = amsRemainLengthService.selectAmsMeuInfo(map);
        String columnNameArray = "salename,mon,ty,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
        String showNameAry = "销售品名称,月份,类型,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
        HSSFWorkbook workbook = new HSSFWorkbook(); // 产生工作簿对象
        HSSFSheet sheet = workbook.createSheet(); // 产生工作表对象
        HSSFFont columnHeadFont = workbook.createFont();
        columnHeadFont.setFontName("宋体");
        columnHeadFont.setFontHeightInPoints((short) 12);
        columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        // 列头的样式
        HSSFCellStyle columnHeadStyle = workbook.createCellStyle();
        columnHeadStyle.setFont(columnHeadFont);
        columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
        columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        // 设置第一个工作表的名称为firstSheet
        // 为了工作表能支持中文,设置字符编码为UTF_16
        workbook.setSheetName(0, "firstSheet");
        // 产生一行
        HSSFRow row = sheet.createRow((short) 0);
        String[] showNameArray = showNameAry.split(",");
        // 产生第一个单元格
        for (int i = 0; i < showNameArray.length; i++) {
            HSSFCell cell = row.createCell(i);
            // 设置单元格内容为字符串型
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell.setCellValue(showNameArray[i]);
        }
        // 为了能在单元格中写入中文,设置字符编码为UTF_16。
        // cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        int rowNum = 1;
        // 循环往单元格中写入信息
        // 根据数据库里面返回的list的size循环创建行
        for (int i = 0; i < list.size(); i++) {
            Map mapData = list.get(i);
            HSSFRow row1 = sheet.createRow((short) rowNum);
            String[] aaaa = columnNameArray.split(",");
            for (int j = 0; j < 34; j++) {
                HSSFCell cell1 = row1.createCell(j);
                if (mapData.get("fl").equals("0")) {
                    // 设置单元格内容为字符串型
                    cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
                    if (mapData.containsKey(aaaa[j])) {
                        cell1.setCellValue(mapData.get(aaaa[j]).toString());
                    } else {
                        cell1.setCellValue("");
                    }
                } else {
                    if (mapData.containsKey(aaaa[j])) {
                        Font font = workbook.createFont();
                        font.setColor(HSSFColor.RED.index);
                        columnHeadStyle.setFont(font);
                        cell1.setCellStyle(columnHeadStyle);
                        // 设置单元格内容为字符串型
                        cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
                        cell1.setCellValue(mapData.get(aaaa[j]).toString());
                        
                    } else {
                        cell1.setCellValue("");
                    }

                }


在struts2.


            }
            rowNum += 1;
        }
        this.filename = "AmsRemainLength.xls";
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        System.out.println("aa");
        try {
            workbook.write(outputStream);
            inputStream = new ByteArrayInputStream(outputStream.toByteArray());
            outputStream.flush();
            outputStream.close();
            return "excel";
        } catch (Exception e) {
            e.printStackTrace();
            return "excel";
        }

    }

在struts2.xml里面的配置

            <result name="excel" type="stream">
                <!-- 指定下载文件的内容类型,text/plain是默认类型 -->
                <param name="contentType">text/plain</param>
                <!--
                    inputName默认值是inputStream,如果action中用于读取下载文件内容的属性名是inputStream,那么可以省略这个参数
                -->
                <param name="inputName">inputStream</param>
                <!--动态获取文件名,从Action中的取得filename-->
                <param name="contentDisposition">
                    attachment;filename="${filename}"
                </param>
                <param name="bufferSize">2048</param>
            </result>


备注:导入的excel文件必须是microsoft 的office。不能用WPS的(WPS的excel不能读取)


版权声明:本文为博主原创文章,未经博主允许不得转载。

struts2导出数据到excel中方法(模板方法)

现在的项目需要把用户反馈的信息表中的数据导出到excel的需求。之前做过类似的事情,但是时间已经久远,只能网上搜了一下,对于struts2,基本使用poi的方法,但是感觉网上的方法比较乱及不靠谱(没有...
  • richerg85
  • richerg85
  • 2015年01月06日 15:54
  • 11994

Struts2+poi实现Excel文件导出

今天在写四位一体系统的过程中,根据需求需要实现工单的导出功能。我上网查找了一些资料,然后根据自己的实际,比较顺利地实现了这个功能。   下面简单分享一下:   首先需要去找一个pio包,我使用...
  • zeb_perfect
  • zeb_perfect
  • 2014年03月01日 15:22
  • 1565

Java Struts2 POI创建Excel文件并实现文件下载

在做管理系统的时候,经常会用到文件的下载,特别是Excel报表的创建与下载,下面就来简单演示一下,Struts2实现的Excel文件的下载功能。 由于本实验是要动态创建Excel文件,因此需要一些ja...
  • zht666
  • zht666
  • 2013年09月04日 18:53
  • 14334

Struts2 Excel导入导出数据

  • 2011年10月05日 00:01
  • 14.34MB
  • 下载

struts2中利用poi导出excel

  • 2013年03月07日 12:35
  • 5.62MB
  • 下载

struts2整合apache的jxl导入导出excel表格

  • 2012年03月24日 23:03
  • 18KB
  • 下载

Struts2+poi实现Excel文件导出

  • 2011年10月30日 10:42
  • 46KB
  • 下载

struts2实现excel导出

  • 2011年11月11日 20:56
  • 16KB
  • 下载

自己封装的POI + Struts2 实现Excel导出工具包

转自:http://merrygrass.iteye.com/blog/558274 1、注解  Java代码   package lml.excel.annot...
  • evan_shc
  • evan_shc
  • 2016年03月18日 16:02
  • 446

Struts2结合DisplayTag、DbUtils实现查询分页、导出Excel

实例:Struts2结合DisplayTag、DbUtils实现查询分页、导出Excel(转)     这几天在看书的时候,发现了一个好东西,一个开源的jsp自定义标签库,可以实现分页显示,导出为e...
  • yuj9006
  • yuj9006
  • 2013年12月06日 16:47
  • 591
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2导出Excel
举报原因:
原因补充:

(最多只允许输入30个字)