0

我正在尝试在 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 中打印了其余的记录。

我做错了什么?

4

1 回答 1

4

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

于 2013-11-15T07:40:46.590 回答