java使用poi生成Excel文件

1. maven导入poi包:

  

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>

pom.xml

2. 新建测试数据实体类:

  

package com.clz.testexportexcel;

public class ExcelModel {

    private String name;
    private int age;
    private String phone;
    private String address;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public ExcelModel(String name, int age, String phone, String address) {
        super();
        this.name = name;
        this.age = age;
        this.phone = phone;
        this.address = address;
    }
    public ExcelModel() {
        super();
    }

}

ExcelModel

3. 新建工具类及测试

package com.clz.testexportexcel;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

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.ss.usermodel.HorizontalAlignment;

/**
 * 生成导出excel
 * @author Administrator
 *
 */
public class TestExportExcel {

    public static void main(String[] args) {

        String exportFileName = "testExcel.xls";
        String exportFilePath = "E:\\testExcel";
        List<ExcelModel> excelModels = new ArrayList<ExcelModel>();
        ExcelModel em1 = new ExcelModel("张三", 18, "123456", "上海");
        ExcelModel em2 = new ExcelModel("李四", 20, "456789", "南京");
        ExcelModel em3 = new ExcelModel("王五", 22, "987412", "杭州");
        excelModels.add(em1);
        excelModels.add(em2);
        excelModels.add(em3);
        String exportExcel = exportExcel(excelModels, exportFilePath, exportFileName);
        System.out.println(exportExcel);

    }

    /**
     * 导出excel
     * @param excelModel        数据实体类
     * @param exportFilePath    导出文件路径
     * @param exportFileName    导出文件名称
     * @return 生成文件路径
     */
    public static String exportExcel(List<ExcelModel> excelModels, String exportFilePath, String exportFileName) {

        String fileUrl = null;
        HSSFWorkbook wb = null;
        OutputStream os = null;
        try {
            // 判断文件夹是否存在,不存在就创建
            File fileDir = new File(exportFilePath);
            if(!fileDir.exists()) {
                fileDir.mkdirs();
            }
            /**
             *  生成excel文件
             */
            // 第一步,创建一个webbook,对应一个Excel文件
            wb = new HSSFWorkbook();
            // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
            HSSFSheet sheet = wb.createSheet("用户信息导出");
            // 第三步,在sheet中添加表头第0行
            HSSFRow row = sheet.createRow((int) 0);
            // 第四步,创建单元格,并设置值表头 设置表头居中
            HSSFCellStyle style = wb.createCellStyle();
            style.setAlignment(HorizontalAlignment.CENTER); // 居中格式
            HSSFFont font = wb.createFont();
            font.setColor(HSSFFont.COLOR_RED);//HSSFColor.VIOLET.index //字体颜色
            //把字体应用到当前的样式
            style.setFont(font);
            HSSFCell cell=null;
            //表头(与实体类数据一一对应)
            String[] headers={"姓名", "年龄", "电话", "地址"};
            for(int i=0;i<headers.length;i++){
                cell = row.createCell((short) i);
                cell.setCellValue(headers[i]);
                cell.setCellStyle(style);
            }
            // 写数据到excel
            for (int i = 0; i < excelModels.size(); i++) {
                ExcelModel em = excelModels.get(i);
                // 创建行(从第二行开始)
                row = sheet.createRow((int) i + 1);
                // 创建列并赋值
                row.createCell(0).setCellValue(em.getName());
                row.createCell(1).setCellValue(em.getAge());
                row.createCell(2).setCellValue(em.getPhone());
                row.createCell(3).setCellValue(em.getAddress());
            }
            // 写入文件
            fileUrl = exportFilePath + File.separator + exportFileName;
            os = new FileOutputStream(fileUrl);
            wb.write(os);
            os.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(wb != null) {
                try {
                    wb.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        if(fileUrl != null && new File(fileUrl).exists()) {
            return fileUrl;
        }
        return null;
    }

}

TestExportExcel

原文地址:https://www.cnblogs.com/changlezhong/p/9126262.html

时间: 2024-10-11 00:55:03

java使用poi生成Excel文件的相关文章

java 利用 poi 生成 Excel文件的例子

在用java 写数据库应用的时候, 通常会生成各种报表,而这些报表可能会被导出为各种格式的文件,比如Excel文档,pdf 文档等等. 今天先做了一个生成Excel 文档的例子,主要解决以下问题: 1. 生成 Excel 文档. 2. 保护生成Excel文档,设置密码访问. 3. 自动对生成的Excel 文档第一行标题栏设置成filter 过滤形式, 方便用户使用. 用 apache  POI 生成 Excel 文档公用类  程序代码 package com.yihaomen.poi.sampl

java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </depen

POI生成EXCEL文件

POI生成EXCEL文件 一.背景 根据指定格式的JSON文件生成对应的excel文件,需求如下 支持多sheet 支持单元格合并 支持插入图片 支持单元格样式可定制 需要 标题(title),表头(head),数据(data) ,表尾(foot) 明确区分 二.效果预览 三.数据格式 由于是生成Excel文件,这里值考虑生成xlsx格式的Excel文件,数据多表头默认考虑使用 | 表示,不在使用colspan rowspan作为.如需要表示两列两行,第一列合并表头格式为: A|B,A|C生成的

java使用POI操作excel文件,实现批量导出,和导入

一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Excel 95及以后的版本,即可操作后缀为 .xls 和 .xlsx两种格式的excel. POI全称 Poor Obfuscation Implementation,直译为"可怜的模糊实现",利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:htt

Java利用POI生成Excel强制换行(转载)

使用POI创建一个简单的 myXls.xls 文件 常用的包为 org.apache.poi.hssf.usermodel.*; 例子: import java.io.*; import org.apache.poi.hssf.usermodel.*; public class ZoomSheet { public ZoomSheet() { } public static void main(String args[]) throws IOException { HSSFWorkbook wb

【原创】POI 生成Excel文件并下载

ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 效果图: 实现 1.在pom中添加依赖: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</versio

POI生成EXCEL文件(字体、样式、单元格合并、计算公式)

创建一个封装类: 1 package com.jason.excel; 2 3 import java.io.FileNotFoundException; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 import org.apache.poi.hssf.usermodel.HSSFCell; 8 import org.apache.poi.hssf.usermodel.HSSFCellStyle; 9

Java利用POI生成Excel强制换行

前一段时间在做一个学校排课系统时,有一个地方需要利用把课程表生成excel汇出给客户,由于之前用excel都只是简单的应用,在单元格里都是用自动换行,而这次可能需要用到手动强制换行. 于是我在网上找了一下,网上找到的文章都是说在excel里的文字里加上/n,/n/r,/r/n之类,反正各种各样的都有,更奇怪的是还有人说在单元格里加上<br> 后来我试过用/r后的效里是生成的文件里,你用打开时,并不会换行,如果你用鼠标在单元格里点一下之后就会自动换行. 后来我琢磨了一下,可以通过如下方式进行, 

使用POI生成Excel文件,可以自动调整excel列宽

在开发中经常需要用到对Excel文件的操作,现在根据网上的资料整理如下:import java.io.FileOutputStream;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.HS