gpt4 book ai didi

java - 使用 jxl API 将 HashMap 打印到 Excel

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

我想将 HashMap 打印到 Excel 工作表上。我正在迭代 map 并将键、值提取到标签中。但是,我无法打印 HashMap 的所有字段。这是我的代码。

import java.io.File;
import java.util.HashMap;
import java.util.Map.Entry;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

class WriteExcel {

HashMap<Integer, String> map = new HashMap<Integer, String>();

public void writeToFile() throws Exception {

WritableWorkbook wworkbook = Workbook.createWorkbook(new File("D:\\output.xls"));
WritableSheet wsheet = wworkbook.createSheet("First Sheet", 0);

Label l1 = new Label(0, 0, "Serial No");
Label l2 = new Label(1, 0, "Name");
wsheet.addCell(l1);
wsheet.addCell(l2);

map.put(1, "Hello");
map.put(2, "World");
map.put(3, "StackOverflow");
map.put(4, "StackExchange");

for (Entry<Integer, String> entry : map.entrySet()) {
int i = 2;
Label lbl1 = new Label(0, i, entry.getKey().toString());
Label lbl2 = new Label(1, i, entry.getValue());
i++;
wsheet.addCell(lbl1);
wsheet.addCell(lbl2);
wworkbook.write();
}
wworkbook.write();
wworkbook.close();
}
}

public class Test2 {

public static void main(String[] args)
{
WriteExcel write = new WriteExcel();
try {
write.writeToFile();
} catch (Exception e) {
e.printStackTrace();
}
}
}

我只能打印map的第一条记录。 ---> 即 1 你好

map的其他记录不打印。

谁能告诉我为什么会这样?

代码中有什么问题?

最佳答案

循环有两个问题:第一个:i 应该在外部声明,以免每次都将自身重写为 2,第二个是您应该在添加完所有单元格后仅调用 wworkbook.write(); 一次。

以下更改使其可以在我的计算机上运行:

    int i = 2;
for (Entry<Integer, String> entry : map.entrySet()) {
Label lbl1 = new Label(0, i, entry.getKey().toString());
Label lbl2 = new Label(1, i, entry.getValue());
i++;
wsheet.addCell(lbl1);
wsheet.addCell(lbl2);
}
wworkbook.write();
wworkbook.close();

关于java - 使用 jxl API 将 HashMap 打印到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852854/

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