easyexcel将list<Map>写入excel表的示例代码
时间: 2023-12-16 16:06:30 浏览: 241
好的,以下是示例代码:
```
List<Map<String, Object>> dataList = new ArrayList<>();
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("name", "张三");
dataMap.put("age", 26);
dataMap.put("gender", "男");
dataList.add(dataMap);
dataMap = new HashMap<>();
dataMap.put("name", "李四");
dataMap.put("age", 32);
dataMap.put("gender", "女");
dataList.add(dataMap);
ExcelWriter writer = EasyExcel.write("result.xlsx").build();
Sheet sheet = new Sheet(1, 0);
sheet.setSheetName("数据表");
writer.write(dataList, sheet);
writer.finish();
```
这段代码演示了如何将一个`List<Map<String, Object>>`对象写入Excel表格中。具体来说,我们首先创建一个包含数据的`List<Map>`对象,然后根据EasyExcel的API创建ExcelWriter对象和Sheet对象,并将List对象写入该Sheet,最后通过finish()方法将结果写入Excel文件并保存。
相关问题
easyexcel读取excel写入到list<map>
你可以使用阿里巴巴的EasyExcel开源库来读取Excel文件,并将其写入到List<Map>中。下面是一个示例代码:
```java
public List<Map<String, Object>> readExcel(File file) {
List<Map<String, Object>> list = new ArrayList<>();
ExcelReader excelReader = null;
try {
// 创建 ExcelReader 对象
excelReader = EasyExcel.read(file).build();
// 获取第一个工作表
ReadSheet readSheet = EasyExcel.readSheet(0).build();
// 读取数据并写入到 List<Map> 中
excelReader.read(readSheet).headRowNumber(1).registerReadListener(new ReadListener() {
private List<String> headList;
@Override
public void onReadSheet(int sheetIndex, String sheetName) {
}
@Override
public void onReadRowData(List<String> rowData, AnalysisContext context) {
if (headList == null) {
// 第一行为表头,记录表头信息
headList = rowData;
} else {
// 将每行数据转换为 Map,并添加到 List 中
Map<String, Object> map = new HashMap<>();
for (int i = 0; i < headList.size(); i++) {
map.put(headList.get(i), rowData.get(i));
}
list.add(map);
}
}
@Override
public void onException(Exception exception, AnalysisContext context) {
}
}).doRead();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭 ExcelReader 对象
if (excelReader != null) {
excelReader.finish();
}
}
return list;
}
```
该方法接收一个Excel文件作为参数,并返回一个List<Map>对象。在方法中,我们使用EasyExcel库的read方法创建ExcelReader对象,然后使用readSheet方法获取第一个工作表。接着,我们使用registerReadListener方法注册一个ReadListener实例,该实例在读取Excel文件时会被调用。在ReadListener实例中,我们通过onReadRowData方法读取每一行数据并将其转换为Map对象,最后将Map对象添加到List中。最后,我们关闭ExcelReader对象并返回List<Map>对象。
需要注意的是,该代码使用了Java 8的Lambda表达式语法。如果你使用的是Java 7或更早的版本,请将Lambda表达式替换为匿名内部类。
easyexcel导出List<Map<String, object>>
EasyExcel 是一个基于 Apache POI 的 Java Excel 操作库,它能够方便地导入导出 Excel 文件。要导出 List<Map<String, Object>> 到 Excel,可以按以下步骤操作:
1. 首先,确保已经引入 EasyExcel 的依赖。你可以在 Maven 或者 Gradle 中添加以下依赖:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.3.0</version>
</dependency>
```
2. 创建一个包含数据的 List<Map<String, Object>>,每个 Map 对应一条数据记录,键为列名,值为对应的数据。
3. 使用 EasyExcel 提供的 API 进行导出。下面是一个简单的示例代码:
```java
// 创建数据列表
List<Map<String, Object>> dataList = new ArrayList<>();
// 添加数据记录
Map<String, Object> data1 = new LinkedHashMap<>();
data1.put("name", "John");
data1.put("age", 25);
dataList.add(data1);
Map<String, Object> data2 = new LinkedHashMap<>();
data2.put("name", "Alice");
data2.put("age", 30);
dataList.add(data2);
// 定义导出的文件路径和文件名
String fileName = "data.xlsx";
// 定义 Excel 表的表头
List<String> header = new ArrayList<>();
header.add("姓名");
header.add("年龄");
// 导出 Excel
ExcelWriter excelWriter = EasyExcel.write(fileName).build();
WriteSheet writeSheet = EasyExcel.writerSheet(0, "Sheet1").build();
excelWriter.write(dataList, writeSheet);
excelWriter.close();
```
在这个示例中,我们创建了一个 dataList,包含两条数据记录。然后定义了 Excel 的表头,在导出时使用 EasyExcel 的 API 将数据写入 Excel 文件中。
最后,通过 ExcelWriter 对象的 close() 方法关闭文件流,完成导出操作。导出的 Excel 文件将保存在指定的路径和文件名下。
请注意,以上代码仅为示例,实际的导出操作可能需要根据你的业务需求进行适当的修改。希望能对你有所帮助!如果还有其他问题,请继续提问。
阅读全文