poi 或者jxl 都可以实现
读数据库获取数据想必应该难不倒你
最主要的是使用poi 或者jxl 先看看资料吧 上手不难

解决方案 »

  1.   

    首先读数据出来应该没问题吧然后,用jxt或者poi中对excel的操作遍历读的数据,取合适的字段,写进excel中
      

  2.   

    创建一个Excel workbook: 
       HSSFWorkbook wb=new HSSFWorkbook();  接下来,创建一个Excel电子表格:  HSSFSheet sheet1=wb.createSheet("sheet1");  该电子表格的数据是从MySQL数据库表检索得到的。从数据库获得JDBC连接。JDBC连接是使用datasource JNDI MySqlDS获得的。  InitialContext initialContext = new InitialContext();
      javax.sql.DataSource ds = (javax.sql.DataSource)
      initialContext.lookup("MySqlDS");
      java.sql.Connection conn = ds.getConnection();  创建一个java.sql.Statement,并从示例表Catalog获得结果集:  Statement stmt=conn.createStatement();
      ResultSet resultSet=stmt.executeQuery("Select * from Catalog");  为Excel电子表格创建一个标题行。Excel电子表格中的行从“0”开始。  HSSFRow row=sheet1.createRow(0);  对应于表的列设置标题行单元格的值。行单元格也是从“0”开始。例如,行中第一个单元格的值被使用setCellValue方法设置为CatalogId。  row.createCell((short)0).setCellValue("CatalogId");  要向电子表格添加行,迭代结果集并为每个表格行添加一行。从ResultSet检索列值,并在行单元格中设置这些值。for (int i=1;resultSet.next(); i++)
             {
         row=sheet1.createRow(i);
    row.createCell((short)0).setCellValue(resultSet.getString(1));
    row.createCell((short)1).setCellValue(resultSet.getString(2));
    row.createCell((short)2).setCellValue(resultSet.getString(3));
    row.createCell((short)3).setCellValue(resultSet.getString(4));
    row.createCell((short)4).setCellValue(resultSet.getString(5));

      创建一个FileOutputStream来将Excel电子表格输出到XLS文件。每个XLS文件表示一个Excel电子表格:  FileOutputStream output=new文件OutputStream(new文件("c:/excel/catalog.xls"));  将Excel电子表格输出到XLS文件:  wb.write(output);参考一下