当前位置 博文首页 > m0_46212244的博客:使用Poi读取xlsx类型的Excel
其实这个跟读取xls是一样的,就是简单的换了个东西而已,下面直接进入正题。
1.使用Poi写xlsx类型的Excel
package com.company.poi;
import org.apache.commons.io.FileUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class Poi_WriteXlsxExcel {
public static void main(String[] args) {
String[] strings = {"id", "userName", "sex"};
// 创建excel
XSSFWorkbook hssfWorkbook = new XSSFWorkbook();
// 创建sheet表
XSSFSheet sheet = hssfWorkbook.createSheet();
// 创建第一行
XSSFRow row = sheet.createRow(0);
XSSFCell cell = null;
// 插入第一行
for (int i = 0; i < strings.length; i++){
cell = row.createCell(i);
cell.setCellValue(strings[i]);
}
// 追加数据
for (int i = 1; i < 10; i++){
XSSFRow row1 = sheet.createRow(i);
XSSFCell cell1 = row1.createCell(0);
cell1.setCellValue("" + i);
cell1 = row1.createCell(1);
cell1.setCellValue("userName" + i);
cell1 = row1.createCell(2);
cell1.setCellValue("男");
}
// 创建一个excel文件
File file = new File("E:\\Java_Test\\Poi_test01.xlsx");
try {
file.createNewFile();
// 将excel存入流中
FileOutputStream stream = FileUtils.openOutputStream(file);
// 将内容写入
hssfWorkbook.write(stream);
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.使用Poi读取xlsx格式的Escel
package com.company.poi;
import org.apache.commons.io.FileUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.IOException;
public class Poi_ReadXlsxExcel {
public static void main(String[] args) {
// 引入需要解析的excel文件
File file = new File("E:\\Java_Test\\Poi_test01.xlsx");
try {
// 读取
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(FileUtils.openInputStream(file));
// 获取sheet
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
// 获取第一页
int firstRowNum = 0;
// 获取最后一页的数
int lastRowNum = xssfSheet.getLastRowNum();
for (int i = 0; i < lastRowNum; i++){
XSSFRow xssfRow = xssfSheet.getRow(i);
// 获取当前行最后单元格的序号
int lastCellNum = xssfRow.getLastCellNum();
for (int j = 0; j < lastCellNum; j++){
XSSFCell xssfCell = xssfRow.getCell(j);
String value = xssfCell.getStringCellValue();
// 当你的excel不只是String类型的时候 使用这个读取方式
// xssfCell.setCellType(Cell.CELL_TYPE_STRING);
// String value = xssfCell.getRichStringCellValue().getString();
System.out.print(value + " ");
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
cs