学习java生成一个EXCEL表格
导入maven依赖
<!-- excel
https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<!-- excel -->
Jakarta POI HSSF API组件
HSSF(用于操作Excel的组件)提供给用户使用的对象在rg.apache.poi.hssf.usermodel包中,主要部分包括Excel对象,样式和格式,还有辅助操作。有以下几种对象:
常用组件:
HSSFWorkbook excel的文档对象
HSSFSheet excel的表单
HSSFRow excel的行
HSSFCell excel的格子单元
HSSFFont excel字体
HSSFDataFormat 日期格式
HSSFHeader sheet头
HSSFFooter sheet尾(只有打印的时候才能看到效果)
样式:
HSSFCellStyle cell样式
辅助操作包括:
HSSFDateUtil 日期
HSSFPrintSetup 打印
HSSFErrorConstants 错误信息表
开始案例
生成一个100个用户的表格
代码:
//创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook wb = new HSSFWorkbook();
//建立新的sheet对象(excel的表单)
HSSFSheet sheet=wb.createSheet("用户表");
//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
HSSFRow row1=sheet.createRow(0);
//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
HSSFCell cell=row1.createCell(0);
//设置单元格内容
cell.setCellValue("用户信息表");
//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(0,0,0,100));
//在sheet里创建第二行
HSSFRow row2=sheet.createRow(1);
//创建单元格并设置单元格内容
row2.createCell(0).setCellValue("编号");
row2.createCell(1).setCellValue("姓名");
row2.createCell(2).setCellValue("性别");
row2.createCell(3).setCellValue("手机号");
//循环输入
for (int i = 1; i <= 100; i++) {
HSSFRow row=sheet.createRow(i+1);
//这里是自己写的工具类生成的字符串
row.createCell(0).setCellValue(i);
row.createCell(1).setCellValue(StringUtils.getRandonCnStr(3));
row.createCell(2).setCellValue(StringUtils.getSex());
row.createCell(3).setCellValue("13"+StringUtils.getRandomNumtoStr(9));
}
//输出Excel文件
FileOutputStream fos=new FileOutputStream("d:/pic/testExcel/workbook.xls");
wb.write(fos);
fos.close();
效果展示:
学习链接:https://www.cnblogs.com/hanfeihanfei/p/7079210.html