apache-poi下载地址: http://poi.apache.org/download.html
apache-poi可以用来创建Excel文件,向Excel文件写入内容,读取Excel
其实我们平时怎么创建Excel xls文件的,用Java也是一样的方法
需求:在桌面上创建一个名叫template.xls的Excel文件
步骤如下:
1.创建一个测试类,叫ExcelTest,用来测试Excel的创建和读取,创建测试类testCreateExcelFile.
2.实例化Excel文档对象
3.创建一个Sheet对象
4.创建行对象,并给当前行设置数据
5.声明一个流来把内存中的文档对象写入到Excel文件
@Test
void testCreateExcelFile() throws Exception {
// 创建一个Excel文档对象
HSSFWorkbook book = new HSSFWorkbook();
// 创建一个Sheet对象,给当前sheet页设置标题
HSSFSheet sheet = book.createSheet("信息管理");
// 创建行对象,行号从0开始
HSSFRow row1 = sheet.createRow(0);
// 给第一行写入数据
// 创建单元格对象,并对每个单元格写入数据,第一个参数表示单元格的索引,第二个参数表示单元格数据的类型
row1.createCell(0, CellType.STRING).setCellValue("编号");
row1.createCell(1, CellType.STRING).setCellValue("姓名");
row1.createCell(2, CellType.STRING).setCellValue("年龄");
row1.createCell(3, CellType.STRING).setCellValue("薪水");
// 创建第二行对象
HSSFRow row2 = sheet.createRow(1);
// 给第二行的每个单元格写入数据
row2.createCell(0, CellType.NUMERIC).setCellValue(1);
row2.createCell(1, CellType.STRING).setCellValue("张三");
row2.createCell(2, CellType.NUMERIC).setCellValue(24);
row2.createCell(3, CellType.NUMERIC).setCellValue(1998.1);
// 创建文件流对象,用于把数据写入到文件
OutputStream out = new FileOutputStream(new File("C:/Users/Administrator/Desktop/a.xls"));
// 调用方法
book.write(out);
// 最后一定要关闭资源,不然数据写不出去
out.close();
}
运行测试防范之后桌面上会生成xls文件
需求,读取桌面上的一个叫a.xls中的所有数据
1.创建一个测试方法,testReadExcelFile,
2.声明一个文档对象,指向一个具体存在的Excel文件
3.根据工作簿标题获取sheet工作簿,
4.遍历每一行
5.遍历每一行的单元格
// 创建文档对象
// 声明指向一个文件的流对象
InputStream in = new FileInputStream(new File("C:/Users/Administrator/Desktop/a.xls"));
HSSFWorkbook book = new HSSFWorkbook(in);
// 获取工作簿对象sheet
HSSFSheet sheet = book.getSheet("信息管理");
// 获取最后一行的行号,行号从0开始
int lastRowNum = sheet.getLastRowNum();
// 遍历每一行
for (int i = 0; i <= lastRowNum; i++) {
// 获取每一行的对象
HSSFRow row = sheet.getRow(i);
// 获取每一行最大的单元格索引
short lastCellNum = row.getLastCellNum();
for (int j = 0; j < lastCellNum; j++) {
// 获取单元格对象
HSSFCell cell = row.getCell(j);
System.out.println(cell);
}
}
控制台的输出结果为: