在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: // 如果单元格是其他类型,则输出空字符串和单元格格式信息(不包含小数点)和原始值(包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)和空字符串(不包含小数点)。...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省篇幅...//省略部分代码以节省幅
还没有评论,来说两句吧...