java 接口 同时导入导出 excel
时间: 2024-09-29 16:02:06 浏览: 28
在Java中,要同时处理Excel的导入和导出,通常会使用一些第三方库,如Apache POI(HSSF和XSSF模块用于读写Excel文件)。以下是简要步骤:
### 导入Excel(Export to Excel)
1. **添加依赖**:在Maven项目中,添加Apache POI的依赖到pom.xml文件:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
```
2. **创建Workbook对象**:使用`XSSFWorkbook`或`XSSFSheet`创建一个新的工作簿。
3. **设置行和单元格数据**:通过`Row`对象操作单元格(`Cell`),填充数据。
4. **保存文件**:将工作簿保存为Excel文件,例如 `.xlsx`。
```java
import org.apache.poi.xssf.usermodel.*;
public void exportToExcel() {
try (XSSFWorkbook workbook = new XSSFWorkbook()) {
XSSFSheet sheet = workbook.createSheet("Sheet1");
Row headerRow = sheet.createRow(0);
// 添加列标题
for (int i = 1; i <= 10; i++) { // 假设有10行数据
Row dataRow = sheet.createRow(i);
dataRow.createCell(0).setCellValue("Data " + i); // 第一列数据
// ... 其他列的数据
}
FileOutputStream outputStream = new FileOutputStream("output.xlsx");
workbook.write(outputStream);
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
```
### 导出Excel(Import from Excel)
1. **读取文件**:使用`XSSFWorkbook`或`HSSFWorkbook`加载Excel文件。
2. **遍历工作表**:获取`XSSFSheet`或`HSSFSheet`,然后逐行读取数据。
3. **解析单元格值**:使用`Cell`的`getStringCellValue()`等方法获取内容。
```java
import org.apache.poi.ss.usermodel.*;
public List<Map<String, String>> importFromExcel(String filePath) {
List<Map<String, String>> data = new ArrayList<>();
try (InputStream inputStream = new FileInputStream(filePath)) {
Workbook workbook = new XSSFWorkbook(inputStream);
for (Sheet sheet : workbook.getSheets()) {
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Map<String, String> rowData = new HashMap<>();
for (int i = 0; i < row.getLastCellNum(); i++) {
Cell cell = row.getCell(i);
if (cell != null) {
rowData.put(sheet.getRow(0).getCell(i).getStringCellValue(), cell.getStringCellValue()); // 假设第一行是列标题
}
}
data.add(rowData);
}
}
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
return data;
}
```
阅读全文