报表读写 - POI
报表:简单的说,报表就是用表格、图表等格式来动态显示数据,可以用公式表示为:“报表 = 多样的格式 + 动态的数据”。
报表的种类有很多:Excel报表,PDF报表,网页报表等,他们各有优缺点
在本课程中,我们主要来将Excel报表。
对于Excel报表的技术实现上也有很多种选择:
- JXL:支持xls文件操作
- POI:支持xls和xlsx文件操作
我们只要来讲POI技术,要使用POI就要导入其坐标,如下
<!--POI-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.0.1</version>
</dependency>
1.1 POI写Excel文件
在测试包下创建POI测试类:com.itheima.service.store.PoiTest
public class PoiTest {
@Test
public void testWriteByPoi() throws IOException {
//1.获取到对应的Excel文件,工作簿文件
Workbook wb = new XSSFWorkbook();
//2.创建工作表
Sheet sheet = wb.createSheet();
wb.createSheet("这是啥呀");
//3.创建工作表中的行对象
Row row = sheet.createRow(1);
//4.创建工作表中行中的列对象
Cell cell = row.createCell(1);
//5.在列中写数据
cell.setCellValue("测试一下单元格");
//创建一个文件对象,作为excel文件内容的输出文件
File f = new File("test.xlsx");
//输出时通过流的形式对外输出,包装对应的目标文件
OutputStream os = new FileOutputStream(f);
//将内存中的workbook数据写入到流中
wb.write(os);
wb.close();
os.close();
}
}
使用单元测试进行测试!
1.2 POI读Excel文件
创建读Excel的测试方法:testReadByPoi
@Test
public void testReadByPoi() throws IOException {
//1.获取要读取的文件工作簿对象
Workbook wb = new XSSFWorkbook("test.xlsx");
//2.获取工作表
Sheet s = wb.getSheetAt(0);
//3.获取行
Row row = s.getRow(3);
//4.获取列
Cell cell = row.getCell(1);
//5.根据数据的类型获取数据
// String data = cell.getStringCellValue();
// double data = cell.getNumericCellValue();
boolean data = cell.getBooleanCellValue();
System.out.println(data);
wb.close();
}
直接读取第一节创建好的Excel文件