我想在Excel中使用java打印总数与例外

我想在Excel中打印像“5”“空指针exception”“15”“ZZZZZexception”“7”“XYZexception”

我从MySQL数据库中获取所有exception。

下面的代码给出了excel文件中所有exception的输出,但不知道如何将这些exception分组? 还有一个帮助,这个代码水平地打印所有的数据。像“nullpointer exception”“ZZZZZ exception”“XYZ exception”。

你能帮助我垂直打印,并将所有这些exception与计数? 谢谢。

public class Abcd { public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("Connecting to database..."); conn = DriverManager.getConnection( "jdbc:mysql://10.9.1.1:3306/XXXXX", "Unm", "pass"); System.out.println("Creating statement..."); stmt = conn.createStatement(); ResultSet rs = stmt .executeQuery("select EXCEPTION_MESSAGE from TABLENAME where E_TYPE = 'FAILED' and O_TYPE = 6 and TIME_ >= '2016-4-8 00:00:00' and TIME_ <= '2016-4-11 00:00:00'"); // Excel file generation code String filename = "D:/RONAKExcelFile.xls" ; HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("FirstSheet"); HSSFRow rowhead = sheet.createRow((short) 0); rowhead.createCell(0).setCellValue("List of Exceptions"); HSSFRow row = sheet.createRow((short)1); int i = 0; while (rs.next()) { // Retrieve by column name String msg = rs.getString("EXCEPTION_MESSAGE"); // Display values System.out.println("Exception=> " + msg); row.createCell(i).setCellValue(msg); i++; System.out.println("Length = " + msg.length()); } FileOutputStream fileOut = new FileOutputStream(filename); workbook.write(fileOut); fileOut.close(); System.out.println("Excel file has been generated!"); rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { // Handle errors for JDBC System.out.println("Unable to make connection with database...!"); se.printStackTrace(); } catch (Exception e) { // Handle errors for Class.forName e.printStackTrace(); } finally { // finally block used to close resources try { if (stmt != null) stmt.close(); } catch (SQLException se2) { }// nothing we can do try { if (conn != null) conn.close(); } catch (SQLException se) { se.printStackTrace(); }// end finally try }// end try System.out.println("Goodbye!"); }// end main } 

一些build议:

1.)在查询中使用GROUP BY语句:

 SELECT EXCEPTION_MESSAGE, COUNT(*) AS EXCEPTION_COUNT FROM .... GROUP BY EXCEPTION_MESSAGE; 

2.)现在你的ResultSet的每个条目都匹配你的“target-excel”的一行。 即你的while循环应该看起来像:

 for(int i=0; rs.next(); i++) { HSSFRow row = sheet.createRow(i); row.createCell(0).setCellValue(rs.getString("EXCEPTION_MESSAGE")); row.createCell(1).setCellValue(rs.getString("EXCEPTION_COUNT")); }