首先導入需要的依賴
//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();
}