1.引入依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.0</version>
</dependency>
2.xls结尾的excel文件
读取
public class poi {
public static void main(String[] args) {
try {
// 获取工作簿
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("C:\\test.xls"));
// 获取工作表
HSSFSheet sheetAt = workbook.getSheetAt(0);
// 获取最后一行,索引从0开始
int lastRowNum = sheetAt.getLastRowNum();
// 获取总行数
int physicalNumberOfRows = sheetAt.getPhysicalNumberOfRows();
for (int i = 0; i <= lastRowNum; i++) {
HSSFRow row = sheetAt.getRow(i);
// 如果行不为空,继续执行
if (row != null) {
if (i != 0) {
// 获取单元格数据
for (Cell cell : sheetAt.getRow(i)) {
// 如果列不为空,继续执行
if (cell != null) {
// 把表格里的数据转换为String类型
cell.setCellType(CellType.STRING);
// 如果单元格的值不为空
if (cell.getStringCellValue() != "") {
// 输出单元格内容
System.out.print(cell.getStringCellValue() + " ");
}
}
}
System.out.println();
}
}
}
// 资源释放
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
写入
public class xls {
public static void main(String[] args) {
// 创建工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建工作表
HSSFSheet sheet = workbook.createSheet("测试xls");
// 创建行
HSSFRow row = sheet.createRow(0);
// 创建单元格(列)
// 设置第一个单元格的值
row.createCell(0).setCellValue("测试用例xls1");
// 设置第二个单元格的值
row.createCell(1).setCellValue("测试用例xls2");
// 创建一个输出流对象
try {
FileOutputStream out = new FileOutputStream("C:\\xlsWrite.xls");
// 写入数据到excel文件
workbook.write(out);
// 刷新内容
out.flush();
// 释放资源
out.close();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3.xlsx结尾的excel文件
读取
public class poiXlsx {
public static void main(String[] args) {
try {
// 获取工作簿
XSSFWorkbook workbook = new XSSFWorkbook("C:\\test02.xlsx");
// 获取工作表
XSSFSheet sheetAt = workbook.getSheetAt(0);
// 获取最后一行,索引从0开始
int lastRowNum = sheetAt.getLastRowNum();
// 获取总行数
int physicalNumberOfRows = sheetAt.getPhysicalNumberOfRows();
for (int i = 0; i <= lastRowNum; i++) {
// 获取第i行
XSSFRow row = sheetAt.getRow(i);
if (row != null) {
// 如果行不为空,继续执行
if (i != 0) {
for (Cell cell : sheetAt.getRow(i)) {
// 如果列不为空,继续执行
if (cell != null) {
// 把表格里的数据转换为String类型
cell.setCellType(CellType.STRING);
// 如果单元格的值不为空
if (cell.getStringCellValue() != "") {
System.out.print(cell.getStringCellValue() + " ");
}
}
}
System.out.println();
}
}
}
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
写入
public class xlsx {
public static void main(String[] args) {
try {
// 创建工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建工作表
XSSFSheet sheet = workbook.createSheet("测试xlsx");
// 创建行
XSSFRow row = sheet.createRow(0);
// 创建单元格(列)
// 设置第一个单元格的值
row.createCell(0).setCellValue("测试用例1");
// 设置第二个单元格的值
row.createCell(1).setCellValue("测试用例2");
// 创建一个输出流对象
FileOutputStream out = new FileOutputStream("C:\\xlsxWrite.xlsx");
// 写入数据到excel文件
workbook.write(out);
// 刷新内容
out.flush();
// 释放资源
out.close();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}