Java报表以及表格
文章目录
- 1.3.1 低版本的Excel
- 1.3.2 高版本的Excel
- 1.3.3 读取并操作Excel
- 1.3.4 用戶的导入操作
- 1.3.5 用户导出下载Excel
- 1.3.6 导出带样式的Excel
- 1.3.7 基于模板的复杂样式的导出
一、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);
}
}
标签:Java,表格,Day02,Excel,cellStyle3,new,workbook,sheet,row From: https://blog.51cto.com/u_14957231/5725630