工作中临时需要对各种订单量进行简单的统计分析,为了方便简单学习了apache poi 对 xlsx 文件的基本操作,简单记录
1. 引包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
2. 创建文件
public static void main(String[] args) {
// 创建文件,创建工作薄
File xlsFile = new File("C:/demo/demo.xlsx");
xlsFile.getParentFile().mkdirs();
try (FileOutputStream outputStream = new FileOutputStream(xlsFile);
XSSFWorkbook xssWorkbook = new XSSFWorkbook()) {
// 创建单元格样式
XSSFCellStyle cellStyle = xssWorkbook.createCellStyle();
// 内容居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
// 创建工作表
XSSFSheet sheet = xssWorkbook.createSheet("sheet1");
for (int i = 0; i < 10; i++) {
// 设置工作表宽度(宽度单位为1/256个字符宽度)
sheet.setColumnWidth(i, 20 * 256);
// 创建行(创建行不一定需要从0开始)
XSSFRow row = sheet.createRow(i);
for (int j = 0; j < 5; j++) {
// 创建单元格,(创建单元格也不需要从0开始)
XSSFCell cell = row.createCell(j);
// 给单元格设置内容
cell.setCellValue("row->" + i + ", column->" + j);
// 给单元格设置样式
cell.setCellStyle(cellStyle);
}
}
// 输出
xssWorkbook.write(outputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
3. 读取文件
public static void main(String[] args) {
// 读取文件获取工作薄
File excelFile = new File("C:/demo/demo.xlsx");
try (FileInputStream inputStream = new FileInputStream(excelFile);
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(inputStream)) {
// 获取工作表数量
int numberOfSheets = xssfWorkbook.getNumberOfSheets();
for (int i = 0; i < numberOfSheets; i++) {
// 获取工作表
XSSFSheet sheet = xssfWorkbook.getSheetAt(i);
// 获取最后一条行数(包含该行)
int lastRowNum = sheet.getLastRowNum();
for (int j = 0; j <= lastRowNum; j++) {
// 获取行
XSSFRow row = sheet.getRow(j);
// 获取单元格列数(不包含该行)
short lastCellNum = row.getLastCellNum();
for (int k = 0; k < lastCellNum; k++) {
// 获取单元格
XSSFCell cell = row.getCell(k);
// 以String的格式获取单元格内容
System.out.println(cell.getStringCellValue());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
网友评论