poi导出

 

 

 

首先需要导入一定的jar包(poi.jar)

 

user类

package com.sxt.excel;

 

 

import java.io.InputStream;

import java.util.Date;

 

 

public class User {

    private Integer id;

    private String name;

    private String address;

    private Integer sex;

    private Date birth;

 

 

    public User() {

    }

 

 

    public User(Integer id, String name, String address, Integer sex, Date birth) {

        this.id = id;

        this.name = name;

        this.address = address;

        this.sex = sex;

        this.birth = birth;

    }

 

 

    public Integer getId() {

        return id;

    }

 

 

    public void setId(Integer id) {

        this.id = id;

    }

 

 

    public String getName() {

        return name;

    }

 

 

    public void setName(String name) {

        this.name = name;

    }

 

 

    public String getAddress() {

        return address;

    }

 

 

    public void setAddress(String address) {

        this.address = address;

    }

 

 

    public Integer getSex() {

        return sex;

    }

 

 

    public void setSex(Integer sex) {

        this.sex = sex;

    }

 

 

    public Date getBirth() {

        return birth;

    }

 

 

    public void setBirth(Date birth) {

        this.birth = birth;

    }

}

 

 

 

测试poi类

package com.sxt.excel;

 

 

import org.apache.poi.hssf.usermodel.*;

import org.apache.poi.hssf.util.HSSFColor;

import org.apache.poi.ss.usermodel.HorizontalAlignment;

import org.apache.poi.ss.usermodel.VerticalAlignment;

import org.apache.poi.ss.util.CellRangeAddress;

 

 

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

 

 

public class TestExport {

    public static void main(String[] args) {

        List<User>users=new ArrayList<>();

        for(int i=0;i<=20;i++){

            users.add(new User(i,"小明"+i,"武汉"+i,i%2,new Date()));

 

 

        }

        String path="D:/image/users.xls";

        export(users,path);

    }

 

 

    /**

     * 导出

     * @param users

     */

    public static void export(List<User>users,String path){

        //1、创建一个工作簿

        HSSFWorkbook workbook=new HSSFWorkbook();

        //2、在工作簿里面出创建sheet

        //workbook.createSheet()//只是创建名字为默认的sheetX

        HSSFSheet sheet=workbook.createSheet("用户数据");

        //3、sheet的相关数据

//      sheet.setColumnHidden();设置某一列是否隐藏

//        sheet.setColumnWidth(); //设置某一列的宽度

       // sheet.setDefaultColumnWidth(20);//设置默认宽度

        //sheet.setDefaultRowHeight((short) (20*20));//设置默认行高

        //合并

        CellRangeAddress region1=new CellRangeAddress(0,0,0,4);

        sheet.addMergedRegion(region1);

        CellRangeAddress region2=new CellRangeAddress(1,1,0,4);

        sheet.addMergedRegion(region2);

        //创建行

        int row=0;

        HSSFRow row1=sheet.createRow(row);

        //在一行里面创建一个单元格

        //创建标题样式

        HSSFCellStyle titleStyle=createTitleStyle(workbook);

 

 

        HSSFCell row1_cell1=row1.createCell(0);

        //向row1_cell1里面添加数据

        row1_cell1.setCellValue("用户数据");

        row1_cell1.setCellStyle(titleStyle);

 

 

        //第二行

        //创建小标题样式

        HSSFCellStyle subTitleStyle=createSubTitleStyle(workbook);

        row++;

        HSSFRow row2=sheet.createRow(row);

        HSSFCell row2_cell1=row2.createCell(0);

        row2_cell1.setCellValue("总条数"+users.size()+"   导出时间"+new Date().toLocaleString());

        row2_cell1.setCellStyle(subTitleStyle);

        //第三行

        String[] title={"用户ID","用户名","用户地址","性别","入职时间"};

        row++;

        HSSFRow row3=sheet.createRow(row);

        //创建表头样式

        HSSFCellStyle tableHeaderStyle=createTableTitleStyle(workbook);

        for(int i=0;i<title.length;i++){

            HSSFCell cell=row3.createCell(i);

            cell.setCellValue(title[i]);

            cell.setCellStyle(tableHeaderStyle);

        }

        //创建基础样式

        HSSFCellStyle baseStyle=createBaseStyle(workbook);

        //第四行到最后

        for(int i=0;i<users.size();i++){

            User user=users.get(i);

            row++;

            HSSFRow rowx=sheet.createRow(row);

            HSSFCell cell1= rowx.createCell(0);

            cell1.setCellValue(user.getId());

            cell1.setCellStyle(baseStyle);

 

 

            HSSFCell cell2= rowx.createCell(1);

            cell2.setCellValue(user.getName());

            cell2.setCellStyle(baseStyle);

 

 

            HSSFCell cell3= rowx.createCell(2);

            cell3.setCellValue(user.getAddress());

            cell3.setCellStyle(baseStyle);

 

 

            HSSFCell cell4= rowx.createCell(3);

            cell4.setCellValue(user.getSex()==1?"男":"女");

            cell4.setCellStyle(baseStyle);

 

 

            HSSFCell cell5= rowx.createCell(4);

            cell5.setCellValue(user.getBirth().toLocaleString());

            cell5.setCellStyle(baseStyle);

        }

        //导出保存到D盘

        try {

            workbook.write(new File(path));

            System.out.println("导出成功");

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

 

 

    /**

     * 创建基础样式

     * 水平和垂直居中

     */

    public static HSSFCellStyle createBaseStyle(HSSFWorkbook workbook){

        HSSFCellStyle style=workbook.createCellStyle();

        //设置水平居中

        style.setAlignment(HorizontalAlignment.CENTER);

        //设置垂直居中

        style.setVerticalAlignment(VerticalAlignment.CENTER);

        return style;

    }

 

 

 

 

    /**

     * 创建数据表格的样式

     */

    public static HSSFCellStyle createTableTitleStyle(HSSFWorkbook workbook){

        HSSFCellStyle style=createBaseStyle(workbook);

 

 

        //设置字体

        HSSFFont font=workbook.createFont();

        font.setBold(true);//设置粗体

        font.setItalic(true);//设置斜体

        font.setFontHeightInPoints((short) 12);//设置字体大小

        font.setColor(HSSFColor.HSSFColorPredefined.DARK_TEAL.getIndex());//设置颜色

        font.setFontName("Consolas");//设置字体

        style.setFont(font);

 

 

        return style;

    }

 

 

    /**

     * 创建小标题样式

     */

    public static HSSFCellStyle createSubTitleStyle(HSSFWorkbook workbook){

        HSSFCellStyle style=createBaseStyle(workbook);

 

 

        //设置字体

        HSSFFont font=workbook.createFont();

        font.setBold(true);//设置粗体

 

 

        font.setFontHeightInPoints((short) 18);//设置字体大小

        font.setColor(HSSFColor.HSSFColorPredefined.SKY_BLUE.getIndex());//设置颜色

        font.setFontName("楷体");//设置字体

        style.setFont(font);

 

 

        return style;

    }

 

 

 

 

 

 

 

 

    /**

     * 创建标题样式

     */

    public static HSSFCellStyle createTitleStyle(HSSFWorkbook workbook){

        HSSFCellStyle style=createBaseStyle(workbook);

 

 

        //设置字体

        HSSFFont font=workbook.createFont();

        font.setBold(true);//设置粗体

 

 

        font.setFontHeightInPoints((short) 25);//设置字体大小

        font.setColor(HSSFColor.HSSFColorPredefined.BRIGHT_GREEN.getIndex());//设置颜色

        font.setFontName("方正姚体");//设置字体

        style.setFont(font);

 

 

        return style;

    }

}

运行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java POI是一个开源库,用于处理Microsoft Office格式的文档,特别是Excel (.xls, .xlsx)文件。它提供了一组API,允许Java开发者读取、创建和修改Excel文件。 在Java中使用POI导出Excel的主要步骤括: 1. 引入依赖:首先需要在项目中添加Apache POI的依赖。如果你使用Maven,可以在pom.xml文件中添加如下代码: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> <!-- 根据最新版本替换 --> </dependency> ``` 2. 创建HSSFWorkbook对象(.xls文件)或XSSFWorkbook对象(.xlsx文件): ```java Workbook workbook = new HSSFWorkbook(); // 对于.xls文件 XSSFWorkbook workbook = new XSSFWorkbook(); // 对于.xlsx文件 ``` 3. 创建Sheet并设置标题行: ```java Sheet sheet = workbook.createSheet("Sheet1"); Row headerRow = sheet.createRow(0); Cell cell = headerRow.createCell(0); // 单元格索引从0开始 cell.setCellValue("标题1"); // 设置单元格内容 ``` 4. 添加数据行: ```java for (int i = 1; i <= 10; i++) { Row dataRow = sheet.createRow(i); dataRow.createCell(0).setCellValue("数据" + i); // 可以继续添加其他列的数据 } ``` 5. 保存文件: ```java try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) { // 输出流对象 workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } ``` 6. 关闭工作簿: ```java try { workbook.close(); } catch (IOException e) { e.printStackTrace(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值