在Java中,我们可以使用Apache POI库来操作Excel文件,Apache POI是一个流行的API,它允许程序员使用Java程序创建、修改和显示MS Office文件,其中包括Excel。
我们需要在项目中引入Apache POI库,如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
</dependencies>
接下来,我们来看一下如何使用Java操作Excel文件。
1、创建一个新的Excel文件:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class CreateExcel {
public static void main(String[] args) {
Workbook workbook = new XSSFWorkbook(); // 创建一个新的Excel工作簿
Sheet sheet = workbook.createSheet("Sheet1"); // 创建一个工作表
Row row = sheet.createRow(0); // 在工作表中创建一行
Cell cell = row.createCell(0); // 在行中创建一个单元格
cell.setCellValue("Hello, World!"); // 设置单元格的值
try (FileOutputStream outputStream = new FileOutputStream("HelloWorld.xlsx")) {
workbook.write(outputStream); // 将工作簿写入到文件中
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
workbook.close(); // 关闭工作簿
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2、读取一个已有的Excel文件:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
public class ReadExcel {
public static void main(String[] args) {
try (FileInputStream inputStream = new FileInputStream("HelloWorld.xlsx")) {
Workbook workbook = new XSSFWorkbook(inputStream); // 读取Excel工作簿
Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
Iterator<Row> rowIterator = sheet.iterator(); // 遍历工作表中的所有行
while (rowIterator.hasNext()) {
Row row = rowIterator.next(); // 获取当前行
Iterator<Cell> cellIterator = row.cellIterator(); // 遍历行中的所有单元格
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next(); // 获取当前单元格
switch (cell.getCellType()) {
case STRING: // 如果单元格是字符串类型,则直接输出值和单元格格式信息
System.out.print(cell.getStringCellValue() + "\t");
System.out.print(cell.getCellStyle().getDataFormatString() + "\t");
break;
case NUMERIC: // 如果单元格是数字类型,则输出值和单元格格式信息(不包含小数点)和原始值(包含小数点)
System.out.print(cell.getNumericCellValue() + "\t");
System.out.print(cell.getCellStyle().getDataFormatString() + "\t");
System.out.print(cell.getNumericCellValue() + "\t");
break;
default: // 如果单元格是其他类型,则输出空字符串和单元格格式信息(不包含小数点)和原始值(包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)。...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省幅



还没有评论,来说两句吧...