结果设置为excel忽略第1行

时间:2013-11-15 07:28:36

标签: java apache-poi

我正在尝试在java中执行查询并导出到excel

代码:

HSSFSheet localHSSFSheet = localHSSFWorkbook.createSheet(ExcelSheetName);
localHSSFSheet.autoSizeColumn((int) 0, true);
HSSFRow localHSSFRow = localHSSFSheet.createRow(0);  
ResultSetMetaData localResultSetMetaData = localResultSet.getMetaData();
System.out.println(localResultSet.next());

System.out.println(i);
for (int k = 0; k < localResultSetMetaData.getColumnCount(); k++){
 // localHSSFRow.setRowStyle(style)
     localHSSFRow.createCell((int)k).setCellValue(
         localResultSetMetaData.getColumnLabel(k + 1));
}
ResultSet localResultSet1 = localStatement1.executeQuery(sql);
ResultSetMetaData localResultSetMetaData1 = localResultSet1.getMetaData();
System.out.println(localResultSet1.next());

for (int d = 0; d < localResultSetMetaData1.getColumnCount(); d++)
    localHSSFRow.createCell((int)d).setCellValue(
         localResultSetMetaData1.getColumnLabel(d+1));
for (int d = 1; localResultSet1.next(); d++){
    localHSSFRow = localHSSFSheet.createRow((int)d);
    for (int j = 0; j <= localResultSetMetaData.getColumnCount(); j++)
         localHSSFRow.createCell((int)j).setCellValue(
               localResultSet1.getString(j+1));
}

但上面的代码只是忽略了第一条记录(第一行)并将其余内容打印在excel中。

我做错了什么?

1 个答案:

答案 0 :(得分:4)

我怀疑你的调试语句(特别是System.out.println(localResultSet1.next());)应该受到指责:他们将你的localResultSet1从起始位置推进到第二个位置(即第二行),然后你开始从那里写excel。