依赖
org.apache.poi poi-ooxml 3.17 joda-time joda-time 2.10.1
写数据的代码案例
package excel;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
public class ExcelTest {
static String PATH = "E:/tmpfile/";
public static void main(String[] args) throws Exception {
// 创建一个工作簿,03版本,最多为65536行。xls后缀名,如果超出65536行会报异常,优点是过程中写入缓存,不操作磁盘,最后一次性写入磁盘,速度快
// Workbook workbook = new HSSFWorkbook();
// 创建一个工作簿,07版本,不限行,xlsx后缀名,速度慢,可能会报oom异常
// Workbook workbook = new XSSFWorkbook();
// 超级实现类,07版本的加强类,为了解决可能发生的内存溢出,而且写速度快,
Workbook workbook = new SXSSFWorkbook();
// 创建sheet页
Sheet sheet = workbook.createSheet("sheet页的名称");
// 创建行,参数为行数索引从0开始
Row row = sheet.createRow(0);
// 创建一个单元格,单数为行的单元格的索引,从0开始
Cell cell0 = row.createCell(0);
cell0.setCellValue("第一行的第一个单元格");
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(PATH + "test.xlsx");
workbook.write(fileOutputStream);
// 使用SXSSFWorkbook实现类时清掉临时缓存
((SXSSFWorkbook)workbook).dispose();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fileOutputStream != null){
fileOutputStream.close();
}
}
}
}



