首页 > 编程语言 >Day02-Java报表以及表格

Day02-Java报表以及表格

时间:2022-09-30 11:03:19浏览次数:44  
标签:Java 表格 Day02 Excel cellStyle3 new workbook sheet row


Java报表以及表格

Day02-Java报表以及表格_i++

文章目录


一、POI操作Excel

1.1引入依赖

<!-- 低版本Excel所依赖的jar -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
<!-- 高版本Excel所依赖的jar -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.1</version>
</dependency>
<!-- 百万级别数据导出所依赖的jar -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.0.1</version>
</dependency>

1.2 POI操作Excel高低版本区别

在POI包中有如下几个主要的对象和excel的几个对应

对应Excel名称

低版本中的类名

高版本中的类名

工作簿

HSSFWordBook

XSSFWordBook

工作表

HSSFSheet

XSSFSheet


HSSFRow

XSSFRow

单元格

HSSFCell

XSSFCell

单元格样式

HSSFCellStyle

XSSFCellStyle

1.3 入门案例

【需求】:创建一个新的工作簿,里面随便写一句话

1.3.1 低版本的Excel

这里使用的是Junit测试

@Test
public void testLowExcel() throws Exception, IOException {
// 创建一个工作簿 低版本的Excel
Workbook workbook = new HSSFWorkbook();
// 在工作簿中创建新的工作表
Sheet sheet = workbook.createSheet("POI操作Excel");
// 在工作表中创建行 参数是创建的行的角标
Row row = sheet.createRow(0);
// 在行中创建单元格
Cell cell = row.createCell(0);
// 在单元格中创建内容
cell.setCellValue("你好,这是一个简单的POI程序");
// 写出去
workbook.write(new FileOutputStream(new File("d:/testLow.xls")));
System.out.println("操作POI成功...");
}

1.3.2 高版本的Excel

@Test
public void testHeightExcel() throws Exception, IOException {
// 创建一个工作簿 低版本的Excel
Workbook workbook = new XSSFWorkbook();
// 在工作簿中创建新的工作表
Sheet sheet = workbook.createSheet("POI操作Excel");
// 在工作表中创建行 参数是创建的行的角标
Row row = sheet.createRow(0);
// 在行中创建单元格
Cell cell = row.createCell(0);
// 在单元格中创建内容
cell.setCellValue("你好,这是一个简单的POI程序");
// 写出去
workbook.write(new FileOutputStream(new File("d:/testHeight.xlsx")));
System.out.println("操作POI成功...");
}

1.3.3 读取并操作Excel

@Test
public void testReadExcel() throws FileNotFoundException, Exception {
// 有内容的工作簿
Workbook workbook = new XSSFWorkbook(new FileInputStream(new File("E://用户导入测试数据.xlsx")));
// 需要第一个sheet的内容
Sheet sheet = workbook.getSheetAt(0);
// 读取工作表中的内容
// 获取最后一行的索引值
int lastRowIndex = sheet.getLastRowNum();
Row row = null;
User user = null;
ArrayList<User> list = new ArrayList<User>();
for (int i = 1; i <= lastRowIndex; i++) {
user = new User();
row = sheet.getRow(i);
user.setUserName(row.getCell(0).getStringCellValue()); // 用户名
user.setPhone(row.getCell(1).getStringCellValue()); // 手机号
user.setProvince(row.getCell(2).getStringCellValue()); // 省份
user.setCity(row.getCell(3).getStringCellValue()); // 城市
Integer salary = ((Double)row.getCell(4).getNumericCellValue()).intValue();
user.setSalary(salary); // 工资
user.setHireDate(sdf.parse(row.getCell(5).getStringCellValue())); // 入职日期
user.setBirthday(sdf.parse(row.getCell(6).getStringCellValue())); // 出生日期
user.setAddress(row.getCell(7).getStringCellValue()); // 现住址
list.add(user);
}

for (User user2 : list) {
System.out.println(user2);
}
}

Day02-Java报表以及表格_apache_02

标签:Java,表格,Day02,Excel,cellStyle3,new,workbook,sheet,row
From: https://blog.51cto.com/u_14957231/5725630

相关文章