首先导入需要的依赖
//03xls
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
//07xlsx
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
/**
* 优点:写入快
* 缺点:最多只能写65536行
* @throws IOException
*/
@Test
public void testWrite03xls() throws IOException {
//创建workbook
Workbook wb = new HSSFWorkbook();
//创建sheet
Sheet sheet = wb.createSheet("new sheet");
//创建row
for (int rowNum = 0; rowNum < 65536; rowNum++) {
Row row = sheet.createRow(rowNum);
//创建cell
for (int cellNum = 0; cellNum < 10; cellNum++) {
Cell cell = row.createCell(cellNum);
//传入值
cell.setCellValue("我是写入的值");
}
}
//将内存中的workbook写入磁盘
OutputStream out = new
FileOutputStream("D:/poi/text01.xls");
wb.write(out);
//关闭文件
out.close();
}
/**
* 优点:可以写入更多的数据(大于65526行)
* 缺点:写入慢、会遇到OOM
* @throws IOException
*/
@Test
public void testWrite07XSSF() throws IOException {
//创建workbook
Workbook wb = new XSSFWorkbook();
//创建sheet
Sheet sheet = wb.createSheet("sheet1");
//创建row
for (int rowNum = 0; rowNum < 65536; rowNum++) {
Row row = sheet.createRow(rowNum);
//创建cell
for (int cellNum = 0; cellNum < 10; cellNum++) {
Cell cell = row.createCell(cellNum);
cell.setCellValue("我是写入的值");
}
}
//将内存中的workbook写入磁盘
OutputStream out = new FileOutputStream("D:/poi/text02.xlsx");
wb.write(out);
//关闭文件
out.close();
}
/**
* 优点:写入速度快、可以写大数据量
* @throws IOException
*/
@Test
public void testWrite07SXSSF() throws IOException {
//创建workbook
Workbook wb = new SXSSFWorkbook();
//创建sheet
Sheet sheet = wb.createSheet("sheet1");
//创建row
for (int rowNum = 0; rowNum < 65536; rowNum++) {
Row row = sheet.createRow(rowNum);
//创建cell
for (int cellNum = 0; cellNum < 10; cellNum++) {
Cell cell = row.createCell(cellNum);
cell.setCellValue("我是写入的值");
}
}
//将内存中的workbook写入磁盘
OutputStream out = new FileOutputStream("D:/poi/text03.xlsx");
wb.write(out);
//关闭文件
out.close();
//清除临时文件
((SXSSFWorkbook)wb).dispose();
}