JAVA如何实现Excel数据批量导入功能
时间: 2024-05-03 22:18:22 浏览: 189
Java可以使用Apache POI库来操作Excel文件,实现数据批量导入功能。
以下是一个简单的示例代码:
```java
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class ExcelReader {
public static void main(String[] args) throws IOException {
String excelFilePath = "path/to/excel/file.xlsx";
List<List<String>> data = readExcel(excelFilePath);
// 处理导入的数据
}
public static List<List<String>> readExcel(String excelFilePath) throws IOException {
List<List<String>> data = new ArrayList<>();
InputStream inputStream = new FileInputStream(excelFilePath);
Workbook workbook = WorkbookFactory.create(inputStream);
Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.iterator();
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;
default:
rowData.add("");
}
}
data.add(rowData);
}
workbook.close();
inputStream.close();
return data;
}
}
```
此示例将Excel文件的第一个工作表中的所有数据读取到一个二维列表中,可以根据需要进行处理。需要注意的是,此示例没有对异常进行处理。在实际使用时需要添加异常处理逻辑。
阅读全文