`
苹果超人
  • 浏览: 199994 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

导出excel文件

    博客分类:
  • java
阅读更多
@RequestMapping(value = "/exportUserSourceConsumeFundList", method = RequestMethod.GET)
    public void doExportUserSourceConsumeFundList(HttpServletResponse response, UserProfileVO userProfile, Integer exportType) throws Exception {

        LOGGER.info("用户消费金额导出:usersource/exportUserSourceConsumeFundList");

        if (null != userProfile.getBeginTime()) {
            userProfile.setBeginDateTime(DateUtil.parseDate(userProfile.getBeginTime()));
        }
        if (null != userProfile.getEndTime()) {
            userProfile.setEndDateTime(DateUtil.parseDate(userProfile.getEndTime()));
        }
        List<UserProfileVO> userSourceConsumeFundList = userProfileBO.exportUserSourceConsumeFundList(userProfile);

        String[] columns = {"账户用户名","用户真实姓名","手机号","消费金额","加金额","注册时间"};
        String[] dataFields = {"username","name","mobile","fundAmount","goldAmount","registerTime"};
        
        // 设置response参数,可以打开下载页面
        response.reset();
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        
        ServletOutputStream out = response.getOutputStream();
        
        if (exportType == ExportFileType.XLS.getKey()) {
        	Workbook wb = new HSSFWorkbook();        	
        	response.setHeader("Content-Disposition", "attachment;filename=" + new String((EXPORT_NAME_USER_CONSUME_FUND + DateUtil.formatStandardDate(new Date()) + EXTENSION_XLS).getBytes(), "iso-8859-1"));
        	FileUtil.<UserProfileVO>exportExcel(out, columns, dataFields, userSourceConsumeFundList, wb, EXPORT_NAME_USER_CONSUME_FUND);
        } else if (exportType == ExportFileType.XLSX.getKey()) {
        	Workbook wb = new XSSFWorkbook();
        	response.setHeader("Content-Disposition", "attachment;filename=" + new String((EXPORT_NAME_USER_CONSUME_FUND + DateUtil.formatStandardDate(new Date()) + EXTENSION_XLSX).getBytes(), "iso-8859-1"));
            FileUtil.<UserProfileVO>exportExcel(out, columns, dataFields, userSourceConsumeFundList,wb, EXPORT_NAME_USER_CONSUME_FUND);
        } else if (exportType == ExportFileType.CSV.getKey()) {
        	response.setHeader("Content-Disposition", "attachment;filename=" + new String((EXPORT_NAME_USER_CONSUME_FUND + DateUtil.formatStandardDate(new Date()) + EXTENSION_CSV).getBytes(), "iso-8859-1"));
            FileUtil.<UserProfileVO>exportCsvFile(out, columns, dataFields, userSourceConsumeFundList, EXPORT_NAME_USER_CONSUME_FUND);
        }
    }


 public static <T> void exportExcel(OutputStream out,String[] columns, String[] dataFields, List<T> dataList, Workbook wb, String fileName) throws Exception {
        // 创建第一个sheet(页),并命名
        Sheet sheet = wb.createSheet(fileName);
        // 创建第一行
        Row row = sheet.createRow((short) 0);
        Cell cell = null;

        // 创建title
        for (int i = 0; i < columns.length; i++) {
            cell = row.createCell(i);
            cell.setCellValue(columns[i]);
        }

        for (int i = 0; i < dataList.size(); i++) {
            row = sheet.createRow(i + 1);
            T userTemp = dataList.get(i);
            HashMap<String, Object> userMap = HashMapUtil.objToHash(userTemp);

            for (int j = 0; j < dataFields.length; j++) {
                cell = row.createCell(j);
                String dataField = dataFields[j];
                Object value = userMap.get(dataField);
                if (value != null) {
                    cell.setCellValue(value.toString());
                } else {
                    cell.setCellValue("");
                }
            }
        }

        ByteArrayOutputStream os = new ByteArrayOutputStream();

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

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


        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) {
            e.getMessage();
        } finally {
            if (bis != null) {
                bis.close();
            }
            if (bos != null){
                bos.close();
            }
        }
    }
分享到:
评论

相关推荐

    POI导出Excel文件

    这个实例提供了两种方法来导出Excel文件:通过Servlet和通过main方法。这两种方法都是在Java环境中操作Excel数据的有效方式。 首先,让我们详细了解一下Apache POI库。POI提供了一个API,允许开发者在Java应用程序...

    Excel通用导出excel文件

    "Excel通用导出excel文件"这个主题涵盖了如何在不同情况下高效地实现这一目标,不论你是要处理小规模的数据还是大规模的数据集。下面,我们将深入探讨Excel的通用导出功能,以及如何利用它来优化你的工作流程。 ...

    C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法

    "C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法" 在导出Excel文件时,经常会遇到“文件格式与扩展名指定格式不一致”的问题,这是因为大多数人在导出Excel文件时,都是默认保存Excel的格式...

    C#导出excel文件

    本篇文章将深入探讨如何使用C#来创建和导出Excel文件。 首先,你需要一个库来处理Excel文件。Microsoft提供了`Microsoft.Office.Interop.Excel`命名空间,这是一个COM接口,可以直接与Excel应用程序交互。但是,...

    C# Winform实现导入和导出Excel文件

    本文实例为大家分享了Winform实现导入导出Excel文件的具体代码,供大家参考,具体内容如下 /// /// 导出Excel文件 /// /// /// &lt;param name=dataSet&gt;&lt;/param&gt; /// 数据集 /// 导出后是否打开文件 /// ...

    QT导出excel文件。

    QT导出EXCEL,从tableWidget列表获取数据导出到excel文件。导出过程使用了excel模板文件,可以从tableWidget读取固定的几列数据导出到excel文件中。其中excel事先设置好文件格式,后续直接读数写数即可。开发过程...

    java Swing 导入导出Excel文件

    自定义的一个excel文件导入导出类,支持Excel2003到2010的格式。里面也有简单的配置文件的创建。

    C#快速导出Excel文件(3秒可导10万行数据)

    C#快速导出Excel文件,3秒可导10万行数据

    MVC开发的导入导出Excel文件

    导出Excel文件涉及到从数据库或内存中的数据生成新的Excel文件。这个过程与导入类似,但方向相反。 1. **创建Excel工作簿**:使用EPPlus创建一个新的ExcelPackage对象,然后添加工作簿和工作表。 2. **填充数据**...

    JAVAeasyexcel 导出excel文件带多个图片

    easyexcel 导出excel文件带多个图片JAVA代码包

    Html导出Excel文件(兼容所有浏览器)

    "Html导出Excel文件(兼容所有浏览器)"的主题着重于实现这个功能,并确保在各种不同的浏览器环境下都能正常工作。这通常涉及到前端技术与后端技术的结合,以及对浏览器兼容性的深入理解。 首先,我们要明白HTML表格...

    SSM框架利用poi导入导出Excel文件 demo

    在本示例"SSM框架利用poi导入导出Excel文件 demo"中,我们将探讨如何在SSM项目中使用Apache POI库来实现Excel文件的导入与导出功能。 Apache POI是一个流行的开源库,它允许开发者在Java应用程序中创建、修改和显示...

    Visual C++源代码 194 如何使用剪贴板导出Excel文件

    Visual C++源代码 194 如何使用剪贴板导出Excel文件Visual C++源代码 194 如何使用剪贴板导出Excel文件Visual C++源代码 194 如何使用剪贴板导出Excel文件Visual C++源代码 194 如何使用剪贴板导出Excel文件Visual ...

    Visual C++源代码 150 如何以数据源方式导出Excel文件

    Visual C++源代码 150 如何以数据源方式导出Excel文件Visual C++源代码 150 如何以数据源方式导出Excel文件Visual C++源代码 150 如何以数据源方式导出Excel文件Visual C++源代码 150 如何以数据源方式导出Excel文件...

    Visual C++源代码 195 如何使用自动化导出Excel文件

    Visual C++源代码 195 如何使用自动化导出Excel文件Visual C++源代码 195 如何使用自动化导出Excel文件Visual C++源代码 195 如何使用自动化导出Excel文件Visual C++源代码 195 如何使用自动化导出Excel文件Visual ...

    MVC导入与导出excel文件

    在MVC架构下,处理导入和导出Excel文件是常见的需求,尤其在数据管理、报表生成以及数据交换场景中。下面我们将详细探讨如何在MVC应用中实现这个功能。 首先,导入Excel文件涉及到读取Excel数据并将其转化为可操作...

    Asp.net 导出Excel文件总结(导出csv、Office COM组建、Jet OLEDB、NPOI)

    在Asp.net开发中,有时候我们需要将数据导出到Excel文件以便用户下载或者进行进一步的数据处理。... 1. **导出CSV文件** ...通过实践,开发者可以更好地掌握在Asp.net中导出Excel文件的技巧,提高项目开发效率。

    poi多线程大数据导出excel文件.zip

    本项目“poi多线程大数据导出excel文件”提供了一个解决方案,利用多线程来提高Excel的大数据导出效率。 Apache POI 3.1版本是较早的版本,而项目中使用了更新的4.1版本,这意味着它可能利用了更多优化和新特性。在...

    java实现导出Excel文件和XML文件.docx

    Java实现导出Excel文件和XML文件 Java实现导出Excel文件和XML文件是Java语言中的一种常见需求,本文将详细介绍如何使用Java实现导出Excel文件和XML文件的功能。 一、功能简述 点击“导出”按钮,弹出文件选择...

Global site tag (gtag.js) - Google Analytics