1.添加poi相关依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
2.创建excel:
/**
* 生成excel 格式为xlsx
* @param data 填充数据
* @throws IOException
*/
public static void createExcel(List<List<String>> data) throws IOException {
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("sheet1");
sheet.setDefaultRowHeight((short) 400);
// sheet.setDefaultColumnWidth(6000); 未生效
for (int i=0;i<data.size();i++){
XSSFRow row = sheet.createRow(i);
row.setHeight((short) 400);
for (int j=0;j<data.get(i).size();j++){
XSSFCell cell = row.createCell(j);
cell.setCellValue(data.get(i).get(j));
sheet.setColumnWidth(j,6000);
}
}
FileOutputStream os = new FileOutputStream("D:"+ File.separator+"workbook.xlsx");
wb.write(os);
os.close();
}
2.读取excel:
/**
* 读取excel
* @param path 文件路径
* @throws IOException
*/
public static void readExcel(String path) throws IOException{
if(path == null || path.length() == 0){
return;
}
InputStream is = new FileInputStream(path);
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
// 读取sheet,一般只会有一个sheet,即取0
for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet);
if (xssfSheet == null) {
continue;
}
// 读取每行
for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {
XSSFRow xssfRow = xssfSheet.getRow(rowNum);
XSSFCell no = xssfRow.getCell(0);
// 根据需要自己处理
String noStr = String.valueOf(no.getStringCellValue());
}
}
}
对于07以前的xls格式的excel,需要替换XSSFWorkbook为HSSFWorkbook