我正在尝试在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中。
我做错了什么?
答案 0 :(得分:4)
我怀疑你的调试语句(特别是System.out.println(localResultSet1.next());
)应该受到指责:他们将你的localResultSet1从起始位置推进到第二个位置(即第二行),然后你开始从那里写excel。