所以我有3个数组列表,它们都是相同的大小,我正在尝试在excel文件中打印它们,但是IP和GEO只能反复返回第一个值。
这是我的代码:
for (String url : IPGrabber.URLArray) {
Row row = sheet.createRow(rownum++);
row.createCell(0).setCellValue(url);
for (String ip : IPGrabber.IPArray) {
row.createCell(1).setCellValue(ip);
}
for (String geo : GEOLookup.GEOArray) {
row.createCell(2).setCellValue(geo);
}
}
这是excel中的输出
http://www.google.com 199.59.148.82 United States
http://www.google.com 199.59.148.82 United States
http://www.mcbay.net 199.59.148.82 United States
http://www.facebook.com 199.59.148.82 United States
http://twitter.com 199.59.148.82 United States
正如您所看到的,URLArray和IPArray重复相同的值
尝试许多不同的方法会非常感谢任何帮助。
答案 0 :(得分:0)
如果数组总是大小相同,你可以像这样写:
Java示例
for ( int i = 0; i < IPGrabber.URLArray.getSize(); i++ )
{
String url = IPGrabber.URLArray.elementAt(i);
String ip = IPGrabber.IPArray.elementAt(i);
String geo = GEOLookup.GEOArray.elementAt(i);
// TODO: code to insert into the cell
}
编辑:实际上我现在看到你的错误......两个内部循环总是最终将最后一个元素插入到行单元格中 - 这就是为什么你总是得到相同的值。按照我的建议改变代码,它会起作用。
答案 1 :(得分:0)
你做错了for循环。你必须做类似的事情:
类似java的语法:
for ( int i = 0; i < IPGrabber.URLArray.size(); i++ )
{
Row row = sheet.createRow(rownum++);
row.createCell(0).setCellValue(IPGrabber.URLArray.get(i));
row.createCell(1).setCellValue(IPGrabber.IPArray.get(i));
row.createCell(2).setCellValue(GEOLookup.GEOArray.get(i));
}
由于arrayList具有相同的大小。