poi的excel导出导入
时间: 2024-09-25 20:11:13 浏览: 18
POI是一个用于Microsoft Office格式(如Excel、Word等)文件操作的开源Java库。在Excel导出方面,你可以使用Apache POI的HSSF(处理旧版的.HSSX和.HSLX)或XSSF(处理.xlsx格式)组件。下面是一个简单的示例,演示如何使用HSSFWorkbook(对于旧版Excel)或XSSFWorkbook(新版本Excel)来创建并保存工作簿:
```java
// 导出数据到Excel
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public void exportToExcel(List<DataRow> data, String filePath) {
Workbook workbook;
if (isXlsxFormat(filePath)) {
workbook = new XSSFWorkbook(); // 使用xlsx格式
} else {
workbook = new HSSFWorkbook(); // 使用xls格式
}
Sheet sheet = workbook.createSheet("Sheet1");
for (DataRow row : data) {
Row newRow = sheet.createRow(row.getIndex());
for (int i = 0; i < row.getData().length; i++) {
Cell cell = newRow.createCell(i);
cell.setCellValue(row.getData()[i]);
}
}
try {
FileOutputStream outputStream = new FileOutputStream(filePath);
workbook.write(outputStream);
workbook.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private boolean isXlsxFormat(String filePath) {
return filePath.endsWith(".xlsx");
}
// 其他方法,例如读取Excel内容
public List<DataRow> importFromExcel(String filePath) {
FileInputStream inputStream;
if (isXlsxFormat(filePath)) {
inputStream = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(inputStream); // 或者使用HSSFWorkbook
} else {
inputStream = new FileInputStream(filePath);
Workbook workbook = new HSSFWorkbook(inputStream);
}
List<DataRow> result = new ArrayList<>();
Sheet sheet = workbook.getSheetAt(0); // 获取第一个sheet
for (Row row : sheet) {
DataRow newRow = new DataRow(row.getRowNum());
for (Cell cell : row) {
newRow.addData(cell.getCellType(), cell.getStringCellValue());
}
result.add(newRow);
}
workbook.close();
inputStream.close();
return result;
}
```