向Java程序导入Excel数据可以通过多种方式实现,以下是一些常见的方法:
使用Apache POI库
Apache POI是一个开源的Java库,用于处理Microsoft Office格式的文件,以下是使用Apache POI导入Excel数据的基本步骤:
步骤1:添加依赖
您需要在项目的pom.xml文件中添加Apache POI的依赖:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poiooxml</artifactId> <version>5.2.2</version> </dependency>
步骤2:读取Excel文件
import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ExcelReader { public static List<List<String>> readExcel(String filePath) { List<List<String>> data = new ArrayList<>(); try (FileInputStream file = new FileInputStream(new File(filePath)); Workbook workbook = new XSSFWorkbook(file)) { Sheet sheet = workbook.getSheetAt(0); Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); Iterator<Cell> cellIterator = row.cellIterator(); List<String> rowData = new ArrayList<>(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); switch (cell.getCellType()) { case STRING: rowData.add(cell.getStringCellValue()); break; case NUMERIC: rowData.add(String.valueOf(cell.getNumericCellValue())); break; case BOOLEAN: rowData.add(String.valueOf(cell.getBooleanCellValue())); break; case FORMULA: rowData.add(cell.getCellFormula()); break; default: rowData.add(""); } } data.add(rowData); } } catch (Exception e) { e.printStackTrace(); } return data; } }
使用JExcelAPI库
JExcelAPI是一个开源的Java库,用于处理Excel文件,以下是使用JExcelAPI导入Excel数据的基本步骤:
步骤1:添加依赖
在项目的pom.xml文件中添加JExcelAPI的依赖:
<dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.12</version> </dependency>
步骤2:读取Excel文件
import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; public class ExcelReader { public static List<List<String>> readExcel(String filePath) { List<List<String>> data = new ArrayList<>(); try (FileInputStream file = new FileInputStream(new File(filePath)); Workbook workbook = Workbook.getWorkbook(file)) { Sheet sheet = workbook.getSheet(0); for (int i = 0; i < sheet.getRows(); i++) { Row row = sheet.getRow(i); List<String> rowData = new ArrayList<>(); for (int j = 0; j < row.getColumns(); j++) { Cell cell = row.getCell(j); rowData.add(cell.getContents()); } data.add(rowData); } } catch (Exception e) { e.printStackTrace(); } return data; } }
FAQs
Q1:如何处理Excel中的空单元格?
A1: 在读取Excel数据时,可以通过检查单元格的类型来判断是否为空,如果是空单元格,可以将其添加为空字符串或者根据需要处理。
Q2:如何将读取到的Excel数据写入到数据库中?
A2: 读取到Excel数据后,可以使用JDBC连接数据库,并使用SQL语句将数据插入到相应的表中,您需要根据数据库的结构和字段类型来编写相应的SQL语句。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/178694.html