java Excel导出 一对多的数据
要在Java中导出一对多的数据到Excel,可以使用Apache POI库来实现。以下是一个简单的示例代码:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ExcelExport {
public static void main(String[] args) {
List<Map<String, List<String>>> data = new ArrayList<>();
// 添加一对多的数据
Map<String, List<String>> map1 = new HashMap<>();
List<String> values1 = new ArrayList<>();
values1.add("Value 1");
values1.add("Value 2");
values1.add("Value 3");
map1.put("Key 1", values1);
data.add(map1);
Map<String, List<String>> map2 = new HashMap<>();
List<String> values2 = new ArrayList<>();
values2.add("Value 4");
values2.add("Value 5");
values2.add("Value 6");
map2.put("Key 2", values2);
data.add(map2);
// 创建工作簿和工作表
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
int rowIndex = 0;
for (Map<String, List<String>> map : data) {
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
String key = entry.getKey();
List<String> values = entry.getValue();
// 写入键值对
Row row = sheet.createRow(rowIndex++);
Cell keyCell = row.createCell(0);
keyCell.setCellValue(key);
// 写入多个值
for (int i = 0; i < values.size(); i++) {
Cell valueCell = row.createCell(i + 1);
valueCell.setCellValue(values.get(i));
}
}
}
try {
// 导出Excel文件
FileOutputStream fileOutputStream = new FileOutputStream("output.xlsx");
workbook.write(fileOutputStream);
fileOutputStream.close();
workbook.close();
System.out.println("Excel导出成功。");
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个示例代码会创建一个包含一对多数据的列表,并将其导出到名为output.xlsx的Excel文件中。每个一对多的数据会在Excel的一行中显示,键值对在第一列,多个值在接下来的列中。
你可以根据实际需要修改数据的结构以及导出的Excel文件的名称和路径
原文地址: http://www.cveoy.top/t/topic/hHps 著作权归作者所有。请勿转载和采集!