`

spring mvc poi导出excel

 
阅读更多
@RequestMapping(value = "/importexcel.htm", method = RequestMethod.GET)
    public ModelAndView _importExcel(HttpServletRequest request, HttpServletResponse response, Integer cId) throws Exception {

        // 获得要导出的数据集
        List<Map<String, Object>> list = d_ExchangeCodeService.selectExcelRecord(cId);

        // 创建excel工作簿
        Workbook wb = new HSSFWorkbook();
        // 创建第一个sheet(页),并命名
        Sheet sheet = wb.createSheet(list.get(0).get("NAME").toString());

        // 手动设置列宽。第一个参数表示要为第几列设;,第二个参数表示列的宽度,n为列高的像素数。
        sheet.setColumnWidth((short) 0, (short) (35.7 * 150));
        sheet.setColumnWidth((short) 1, (short) (35.7 * 150));
        sheet.setColumnWidth((short) 2, (short) (35.7 * 150));
        sheet.setColumnWidth((short) 3, (short) (35.7 * 100));
        sheet.setColumnWidth((short) 4, (short) (35.7 * 250));
        sheet.setColumnWidth((short) 5, (short) (35.7 * 150));
        sheet.setColumnWidth((short) 6, (short) (35.7 * 150));

        // 创建第一行
        Row row = sheet.createRow((short) 0);

        // 创建两种单元格格式
        CellStyle cs = wb.createCellStyle();
        CellStyle cs2 = wb.createCellStyle();
        // DataFormat df = wb.createDataFormat();// 创建两种字体
        Font f = wb.createFont();
        Font f2 = wb.createFont();

        // 创建第一种字体样式
        f.setFontHeightInPoints((short) 10);
        f.setColor(IndexedColors.RED.getIndex());
        f.setBoldweight(Font.BOLDWEIGHT_BOLD);

        // 创建第二种字体样式
        f2.setFontHeightInPoints((short) 10);
        f2.setColor(IndexedColors.BLACK.getIndex());
        f2.setBoldweight(Font.BOLDWEIGHT_BOLD);

        // 设置第一种单元格的样式
        cs.setFont(f);
        cs.setBorderLeft(CellStyle.BORDER_THIN);
        cs.setBorderRight(CellStyle.BORDER_THIN);
        cs.setBorderTop(CellStyle.BORDER_THIN);
        cs.setBorderBottom(CellStyle.BORDER_THIN);
        // cs.setDataFormat(df.getFormat("#,##0.0"));// 设置第二种单元格的样式
        cs2.setFont(f2);
        cs2.setBorderLeft(CellStyle.BORDER_THIN);
        cs2.setBorderRight(CellStyle.BORDER_THIN);
        cs2.setBorderTop(CellStyle.BORDER_THIN);
        cs2.setBorderBottom(CellStyle.BORDER_THIN);
        // cs2.setDataFormat(df.getFormat("text"));// 创建列(每行里的单元格)
        Cell cell = row.createCell(0);
        cell.setCellValue("用户名");
        cell.setCellStyle(cs);

        cell = row.createCell(1);
        cell.setCellValue("订单号");
        cell.setCellStyle(cs);

        cell = row.createCell(2);
        cell.setCellValue("兑换券序列号");
        cell.setCellStyle(cs);

        cell = row.createCell(3);
        cell.setCellValue("兑换券金额");
        cell.setCellStyle(cs);

        cell = row.createCell(4);
        cell.setCellValue("兑换券类型名称");
        cell.setCellStyle(cs);

        cell = row.createCell(5);
        cell.setCellValue("使用时间");
        cell.setCellStyle(cs);

        cell = row.createCell(6);
        cell.setCellValue("使用结束日期");
        cell.setCellStyle(cs);

        DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        for (short i = 0; i < list.size(); i++) {

            // Row 行,Cell 方格 , Row 和 Cell 都是从0开始计数的// 创建一行,在页sheet上
            row = sheet.createRow((short) i + 1);
            // 在row行上创建一个方格
            cell = row.createCell(0);
            cell.setCellValue(list.get(i).get("usr_UserID") == null ? "未使用" : list.get(i).get("usr_UserID").toString());
            cell.setCellStyle(cs2);

            cell = row.createCell(1);
            cell.setCellValue(list.get(i).get("ord_OrderID") == null ? "未使用" : list.get(i).get("ord_OrderID").toString());
            cell.setCellStyle(cs2);

            cell = row.createCell(2);
            cell.setCellValue(list.get(i).get("Account").toString());
            cell.setCellStyle(cs2);

            cell = row.createCell(3);
            cell.setCellValue(Double.parseDouble(list.get(i).get("Amount").toString()));
            cell.setCellStyle(cs2);

            cell = row.createCell(4);
            cell.setCellValue(list.get(i).get("NAME").toString());
            cell.setCellStyle(cs2);

            cell = row.createCell(5);
            cell.setCellValue(list.get(i).get("UsedTime") == null ? "未使用" : df.format(list.get(i).get("UsedTime")).toString());
            cell.setCellStyle(cs2);

            cell = row.createCell(6);
            cell.setCellValue(df.format(list.get(i).get("BlankOutTime")).toString());
            cell.setCellStyle(cs2);
        }

        ByteArrayOutputStream os = new ByteArrayOutputStream();

        try {
            wb.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        }

        byte[] content = os.toByteArray();
        InputStream is = new ByteArrayInputStream(content);

        // 设置response参数,可以打开下载页面
        response.reset();
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + new String((list.get(0).get("NAME").toString() + ".xls").getBytes(), "iso-8859-1"));

        ServletOutputStream out = response.getOutputStream();

        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;

        try {

            bis = new BufferedInputStream(is);
            bos = new BufferedOutputStream(out);

            byte[] buff = new byte[2048];
            int bytesRead;

            // Simple read/write loop.
            while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
                bos.write(buff, 0, bytesRead);
            }

        } catch (final IOException e) {
            throw e;
        } finally {
            if (bis != null)
                bis.close();
            if (bos != null)
                bos.close();
        }
        return null;

    }
分享到:
评论

相关推荐

    spring mvc easyui-POI导出excel封装源码

    总结来说,"spring mvc easyui-POI导出excel封装源码"项目是将Spring MVC的后端处理能力与EasyUI的前端展示效果以及POI的Excel处理功能相结合,实现了一个功能强大且界面美观的Excel数据导出功能。这个项目对于需要...

    spring MVC 导出excel

    在“spring MVC 导出excel”这个主题中,我们将深入探讨如何利用Spring MVC框架来实现Excel文件的导出功能,这对于数据展示和分析非常有用。 在实际应用中,我们可能需要将数据库中的大量数据导出到Excel文件,以便...

    Spring3 MVC + POI 实现 Excel与MySQL 的导入导出

    本主题聚焦于如何利用Spring3 MVC框架结合Apache POI库来实现在Java环境中Excel与MySQL数据库之间的数据导入与导出。 Spring3 MVC是Spring框架的一个组件,专门用于构建Web应用程序,它提供了模型-视图-控制器(MVC...

    spring3.2.5 MVC Poi3.9操作excel批量导入

    使用Spring MVC和Apache POI,我们可以构建一个高效、可扩展的系统,实现从Excel文件批量导入数据到数据库,并能将数据库中的数据导出为Excel文件。这样,数据分析师可以轻松地进行数据预处理和分析。 在Maven2的...

    java poi导出excel

    以上就是使用Java POI导出Excel的基本步骤。你可以根据实际需求调整代码,例如添加数据遍历、样式设置、图表生成等功能。确保正确管理资源,避免内存泄漏,特别是在服务器端处理大量数据时。记得在完成后关闭工作簿...

    Easyui.+.Spring.Mvc导出Excel

    "Easyui Spring Mvc导出Excel"是一个常见的话题,它涉及了三个关键技术:Easyui、Spring MVC以及Excel导出。 Easyui是一个基于jQuery的UI框架,提供了一系列美观且易于使用的组件,如表格、下拉框、对话框等。在Web...

    spring3.0 MVC Poi操作excel批量导入数据库和导出数据

    在本主题中,我们将讨论如何利用Spring 3.0 MVC和Apache POI库来处理Excel文件,实现批量导入数据库和导出数据的功能。 Apache POI是一个强大的开源库,专门用于读写Microsoft Office格式的文件,特别是Excel(....

    SpringMVC POI Excel 生成导出

    "SpringMVC POI Excel 生成导出" SpringMVC 是一个基于 Java 的 Web 框架,POI 是一个 Java 库,用于操作 Microsoft Office 文件格式,Excel 是一个电子表格软件。今天,我们将在 SpringMVC 中使用 POI 生成 Excel ...

    Spring3MVC and POI

    在实际开发中,Spring 3 MVC与Apache POI的结合非常常见,特别是在需要处理大量数据并导出为Excel报表的场景下。例如,你可以创建一个Controller,通过注解路由处理请求,查询数据库获取数据,然后使用POI将数据写入...

    Jxls+Spring MVC实现Excel导出

    "Jxls+Spring MVC实现Excel导出"的主题聚焦于如何利用Jxls库和Spring MVC框架来实现这一功能。Jxls是一个强大的Java库,它扩展了Apache POI,使得在Excel模板上进行编程变得简单,而Spring MVC是Spring框架的一部分...

    spring mvc excel common view

    源码分析可以帮助我们理解如何在Spring MVC环境中集成Excel导出功能,而工具可能指的是Apache POI或其他辅助开发的工具,如IDE插件。 总的来说,Spring MVC Excel common view涉及到的知识点包括: 1. Spring MVC...

    详解poi+springmvc+springjdbc导入导出excel实例

    本文将围绕“poi+springmvc+springjdbc导入导出excel实例”的主题,详细讲述如何使用这些技术实现数据的导入导出功能。 首先,我们需要了解这些技术的基础概念: 1. POI:Apache POI是一个开源的Java库,用于处理...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...

    poi导入导出及spring

    ### POI导入导出及Spring框架综合应用 #### 一、Apache POI简介与核心功能 Apache POI是Apache软件基金会的Jakarta项目中的一个子项目,它为Java程序员提供了一组API,使得他们能够使用Java来操作Microsoft Office...

    基于struts2 spring ibatis poi开发的导出Excel实例

    【基于Struts2 Spring iBatis POI开发的导出Excel实例详解】 在现代Web应用程序中,导出数据到Excel格式是一种常见的需求,这有助于用户分析、存储或共享信息。本实例将详细介绍如何利用Struts2、Spring和iBatis...

    poi导出Excel 照葫芦画瓢

    这个“poi导出Excel 照葫芦画瓢”的项目很显然是教你如何使用 Apache POI 库来创建和导出 Excel 文件。下面将详细介绍 Apache POI 的基本用法以及在描述中提到的几个关键文件的作用。 首先,让我们来看看 Apache ...

    springmvc+hibernate+poi实现mysql数据库简单操作以及导出excel功能

    例如,以下是一个简化的代码片段,展示了如何使用POI导出数据: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public void exportToExcel(List&lt;DataModel&gt;...

    SpringMvc 使用poi导入导出Excel

    本篇文章将详细介绍如何在Spring MVC项目中使用Apache POI库来实现Excel的导入和导出。 Apache POI是Apache软件基金会的一个开源项目,专门用于读写Microsoft Office格式的文件,包括Excel。在Java中,POI提供了API...

    SSM框架使用POI技术导出Excel.pdf

    SSM框架使用POI技术导出Excel.pdf POI 框架是 Apache 开源的可以导出导入 Excel 表的,本博客介绍在 SSM(Spring+SpringMVC+Mybatis)项目里,如何使用 POI 框架,导出 Excel 表。下面是相关知识点的详细解释: 1...

Global site tag (gtag.js) - Google Analytics