gpt4 book ai didi

java - 如何将值对象列表直接写入 Excel 文件而不迭代每一列?

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:32 25 4
gpt4 key购买 nike

我有一个场景,我想编写一个值对象列表,例如:

public class RequestHandlerVo {

private String userSoeID;
private String email;
private String firstName;
private String lastName;
private String publicationReceived;
private String sourceOfUnsubscribe;
private String senderEmail;
private String receivedDateFrom;
private String receivedDateTo;
private String apiName;
private String updatedBy;
private String updatedOn;
private String action;
}

不使用此逻辑进入 Excelsheet:

Set<Integer> keyset = hashmap.keySet();
InputStream inp = new FileInputStream( new File(path));
FileOutputStream out = new FileOutputStream( new File(path));
int rownum = 1;
int cellnum = 0;

initializeExcelFile(hashmap,path);

workbook = new XSSFWorkbook(inp);

XSSFSheet sheet = workbook.getSheetAt(0);

for(Integer key : keyset){
List<String> nameList = hashmap.get(key);
for(String s : nameList){
XSSFRow row = sheet.getRow(rownum++);
Cell cell = row.getCell(cellnum);
if(null!=cell){
cell.setCellValue(s);
}
}
cellnum++;
rownum=1;
}

workbook.write(out);

因为我有数千条记录,这个逻辑导致我进行了超过 100k 次迭代。在 Excel 文件中写入 1035 条记录需要 92 秒。

我经历过: this , Write data into Excel sheet javaHow list has map values write to excel file using Apache poi

但没有得到解决方案。

最佳答案

如果您喜欢 CSV 或其他文件格式,可以尝试此操作。下面的示例使用一行代码从 ArrayList 写入 CSV 文件。

您可以根据您的输入源类型进行修改。

ArrayList<String> data = new ArrayList<String>();
// add data to arrray list

Path out = Paths.get("filename.csv");
Files.write(out, data, Charset.defaultCharset());

关于java - 如何将值对象列表直接写入 Excel 文件而不迭代每一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42647906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com