Android 将一个实体类的list转为execl表格输出,写一个示例
时间: 2024-09-09 10:03:41 浏览: 64
在Android中,你可以使用Apache POI库将实体类的列表转换成Excel文件。以下是一个简单的示例,假设我们有一个`User`实体类:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class User {
private String name;
private int age;
// getters and setters...
}
// 创建用户列表
List<User> userList = ... // 从数据库、网络或其他源获取
public void exportToExcel(List<User> userList) {
try {
// 创建一个新的Excel工作簿
Workbook workbook = new XSSFWorkbook();
// 获取第一个工作表
Sheet sheet = workbook.createSheet("Users");
// 获取行和列数
int rowNum = 0;
// 写入表头
Row headerRow = sheet.createRow(rowNum++);
CellStyle headerCellStyle = workbook.createCellStyle();
headerCellStyle.setAlignment(HorizontalAlignment.CENTER);
for (Field field : User.class.getDeclaredFields()) {
String fieldName = field.getName();
Cell cell = headerRow.createCell(field索引); // 使用字段顺序作为列索引
cell.setCellValue(fieldName.toUpperCase());
cell.setCellStyle(headerCellStyle);
}
// 写入数据
for (User user : userList) {
Row dataRow = sheet.createRow(rowNum++);
for (int i = 0; i < User.class.getDeclaredFields().length; i++) {
Field field = User.class.getDeclaredFields()[i];
field.setAccessible(true);
Object value = field.get(user);
Cell cell = dataRow.createCell(i);
if (value instanceof Date) {
cell.setCellValue((Date) value);
} else {
cell.setCellValue(String.valueOf(value));
}
}
}
// 保存到文件
File file = new File("/sdcard/users.xlsx");
FileOutputStream outputStream = new FileOutputStream(file);
workbook.write(outputStream);
workbook.close();
outputStream.close();
System.out.println("Excel exported successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
```
在这个例子中,我们首先创建了一个工作簿,然后创建一个sheet并写入表头。接着遍历用户列表,对于每个用户,我们在对应的位置填充字段值。注意处理日期类型的字段需要特殊处理。
阅读全文