这里我想将JTable导出到excel文件中......我没有在控制台上得到任何错误...但是在Excel表格中我只有列名...我的目标是想要在这个JTable的正方形中显示数据库表,在这个下面有Export按钮,所以点击这个按钮后,应该为上面的JTable创建excel文件。将JTable导出为Excel文件
所以着公认的实际误差
JButton btnExport = new JButton("Export");
btnExport.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
try
{
String query="Select * from client";
PreparedStatement pst=conn.prepareStatement(query);
ResultSet rs=pst.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(rs));
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Excel Sheet");
HSSFRow rowhead = sheet.createRow(0);
rowhead.createCell(0).setCellValue("Client_Vendor code");
rowhead.createCell(1).setCellValue("Client_Name");
rowhead.createCell(2).setCellValue("Purchaser_Name");
rowhead.createCell(3).setCellValue("User_Name");
rowhead.createCell(4).setCellValue("Sales_Engg");
int index=1;
while(rs.next())
{
HSSFRow row = sheet.createRow(index);
row.createCell(0).setCellValue(rs.getInt(1));
row.createCell(1).setCellValue(rs.getString(2));
row.createCell(2).setCellValue(rs.getString(3));
row.createCell(3).setCellValue(rs.getString(4));
row.createCell(4).setCellValue(rs.getString(5));
index++;
}
FileOutputStream fileOut = new FileOutputStream("e:/CLIENTDATA/client.xlsx");
wb.write(fileOut);
fileOut.close();
System.out.println("Data is saved in excel file.");
}
catch (Exception e)
{
e.printStackTrace();
}
你基本上是覆盖在'而(rs.next的每一次迭代的文件( ))''循环,而不是写完循环之后 – MadProgrammer
@MadProgrammer ohhh..yes非常感谢你.. – Vsal
Dbutils正在读取结果集的末尾。不要使用它,在阅读结果集时建立TableModel – MadProgrammer