Java实现POI导出Excel

Web框架为Struts2,所用jar包如下:

ExportExcelAction.java

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.Region;

public class ExportExcelAction {

    private InputStream inputStream;

    public String export() {
        try {
            HSSFWorkbook wb = new HSSFWorkbook();
            HSSFSheet sheet = wb.createSheet("new sheet");
            sheet.setDefaultColumnWidth(20); // 默认列宽

            HSSFFont font = wb.createFont();
            font.setFontName("黑体");
            font.setFontHeightInPoints((short) 13);// 设置字体大小
            font.setColor(HSSFColor.WHITE.index); //字体颜色

            HSSFCellStyle headStyle = wb.createCellStyle(); // 头部样式
            headStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平居中
            headStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 下边框
            headStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框
            headStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框
            headStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框
            headStyle.setFillForegroundColor(HSSFColor.TEAL.index);// 设置背景色
            headStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            headStyle.setFont(font);// 选择需要用到的字体格式

            HSSFCellStyle contentStyle = wb.createCellStyle(); // 内容样式
            contentStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 下边框
            contentStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框
            contentStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框
            contentStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框

            HSSFRow row_h = sheet.createRow((short) 0);
            HSSFCell ch = row_h.createCell(0);
            ch.setCellValue("测试导出Excel");
            ch.setCellStyle(headStyle);
            sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) 2));// 指定合并区域

            //表头
            HSSFRow row1 = sheet.createRow((short) 1);
            HSSFCell cell_1_0 = row1.createCell(0);
            cell_1_0.setCellValue("姓名");
            cell_1_0.setCellStyle(headStyle);

            HSSFCell cell_1_1 = row1.createCell(1);
            cell_1_1.setCellValue("出生日期");
            cell_1_1.setCellStyle(headStyle);

            HSSFCell cell_1_2 = row1.createCell(2);
            cell_1_2.setCellValue("住址");
            cell_1_2.setCellStyle(headStyle);

            //内容
            HSSFRow row2 = sheet.createRow(2);
            HSSFCell cell_2_0 = row2.createCell(0);
            cell_2_0.setCellValue("itmyhome");
            cell_2_0.setCellStyle(contentStyle);

            HSSFCell cell_2_1 = row2.createCell(1);
            cell_2_1.setCellValue("1990-05-01");
            cell_2_1.setCellStyle(contentStyle);

            HSSFCell cell_2_2 = row2.createCell(2);
            cell_2_2.setCellValue("北京市昌平区");
            cell_2_2.setCellStyle(contentStyle);

            FileOutputStream fileOut = new FileOutputStream("d:/mysheet.xls"); //导出路径
            wb.write(fileOut);
            fileOut.close();

            inputStream = new FileInputStream("d:/mysheet.xls"); //下载

        } catch (Exception e) {
            e.printStackTrace();
        }
        return "success";
    }

    public InputStream getInputStream() {
        return inputStream;
    }

    public void setInputStream(InputStream inputStream) {
        this.inputStream = inputStream;
    }
}

struts.xml

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="json_code" extends="json-default">
        <!-- 导出报表 -->
        <action name="exportExcelAction" method="export"
            class="com.itmyhome.ExportExcelAction">
            <result type="stream">
                <param name="contentType">application/octet-stream</param>
                <param name="inputName">inputStream</param>
                <param name="contentDisposition">attachment;filename="export.xls"</param>
                <param name="bufferSize">4096</param>
            </result>
        </action>
    </package>
    <package name="build" extends="struts-default">
        <action name="login" method="login" class="com.itmyhome.Login">
            <result name="success">index.jsp</result>
        </action>
    </package>
</struts>

导出Excel如图:

作者:itmyhome

源码:download

时间: 2024-08-09 19:47:12

Java实现POI导出Excel的相关文章

JAVA关于POI导出Excel内存溢出的解决方案

JAVA关于POI导出Excel内存溢出的解决方案 在我们使用JAVA开发过程中,经常要导出查询获得的数据,这些数据一般情况下都是以Excel存储的,因此我们在导出数据的时候要使用JAVA的POI库,其主要是对各种windows平台的数据格式进行操作,在这里,我们是对Excel操作. 生成Excel的过程原理是这样的,首先,我们对数据库进行查询,获取相应的结果集,一般是list集合,然后生成Workbook对象,根据生成的Workbook对象获取sheet对象,根据此sheet对象获取Row对象

Java实现POI导出Excel报表功能

在公司的很多业务中需要做成报表的形式,在市场有很多开源的Java框架,例如POI.JXL等,下面我们结合SpringMVC框架,来实现报表导出功能 首先在项目的lib目录下面加入poi-3.7.jar 核心工具类: import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputSt

java apache poi 导出excel

不说废话,帖代码 引入架包:poi-3.12-20150511.jar   poi-ooxml-3.12-20150511.jar 管网可以下载 try{          FLogicDataset<FDataInfoDeviceBrowserUnit> unitlist = _deviceBrowserConsole.select(logicContext);          //创建新的Excel工作薄           HSSFWorkbook workbook = new HSS

Java通过POI技术操作Excel(3)----数据导出

在之前的博客中,总结了Excel模板生成和Excel数据录入,然后剩最后一个模块,数据库中数据读取,在之前的基础上我们来看这一模块,应该已经非常容易了,接下来简单的介绍一下: 这里我们仍然以jsp+servlet为例,对SqlServer2005数据库进行操作,如下都是基本步骤: 1.连接数据库:2.根据sql语句获取数据库中值:3.将值进行导出操作: 首先,我们来记性数据库的连接,这个相信接触过java的人都不会陌生,我就不赘述了 1 public class DataBase { 2 pri

Java中导入导出Excel -- POI技术

一.介绍: 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际的开发中,很多时候需要实现导入.导出Excel的应用. 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel 下面我就分别讲解一下如何使用这两个技术实现导入.导出Excel 二.使用Jakarta POI导入.导出Excel Jakarta PO

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

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

Excel导出学习之道:Java Web利用POI导出Excel简单例子

采用Spring mvc架构: Controller层代码如下 [java] view plaincopy @Controller public class StudentExportController{ @Autowired private StudentExportService studentExportService; @RequestMapping(value = "/excel/export") public void exportExcel(HttpServletReq

java中使用poi导出excel表格数据并且可以手动修改导出路径

在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下 jar包下载路径:http://download.csdn.net/download/pumpkin09/7077011 第二步:添加poi导出工具类 1 package com.yjd.admin.util; 2 3 import java.io.IOException; 4 import ja

Java POI 导出EXCEL经典实现 Java导出Excel

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