ExcelFromDB.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import java.io.FileOutputStream;
  2. import java.io.OutputStream;
  3. import java.sql.Connection;
  4. import java.sql.ResultSet;
  5. import org.apache.poi.hssf.usermodel.HSSFCell;
  6. import org.apache.poi.hssf.usermodel.HSSFRichTextString;
  7. import org.apache.poi.hssf.usermodel.HSSFRow;
  8. import org.apache.poi.hssf.usermodel.HSSFSheet;
  9. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  10. public class ExcelFromDB {
  11. public static void main(String[] args) throws Exception{
  12. Connection con = null ;
  13. DBConnection db = new DBConnection();
  14. con = db.getDB();
  15. String sql ="select * from student";
  16. ResultSet rs = con.createStatement().executeQuery(sql);
  17. int CountColumnNum = rs.getMetaData().getColumnCount(); //获取总列数
  18. HSSFWorkbook wb = new HSSFWorkbook(); //得到Excel工作簿对象( 创建Excel文档)
  19. HSSFSheet sheet = wb.createSheet("student表中的数据"); //得到Excel工作表对象
  20. HSSFRow firstrow = sheet.createRow(0); //创建表格中的第一行,下标为0
  21. HSSFCell[] firstcell = new HSSFCell[CountColumnNum]; //创建单元格
  22. String[] names = new String[CountColumnNum];
  23. names[0] ="user";
  24. names[1] ="name";
  25. names[2] ="password";
  26. names[3] ="sex";
  27. names[4] ="national";
  28. names[5]="telephone";
  29. names[6]="age";
  30. //给第一行的单元格赋值,即表头
  31. for(int j= 0;j<CountColumnNum;j++) {
  32. firstcell[j] = firstrow.createCell((short)j);
  33. firstcell[j].setCellValue(new HSSFRichTextString(names[j]));
  34. }
  35. int i =1;
  36. while(rs.next()){
  37. //创建表格的一行
  38. HSSFRow row = sheet.createRow(i); //下标为1的行开始
  39. for(int j=0;j<CountColumnNum;j++){
  40. HSSFCell cell = row.createCell((short) j); //在一行内循环
  41. //将结果集里的值放入表格中
  42. cell.setCellValue(new HSSFRichTextString(rs.getString(j+1)));}
  43. i++;
  44. }
  45. //创建文件输出流输出表格
  46. OutputStream out = new FileOutputStream("C:\\Users\\ASUS\\Desktop\\student.xls");
  47. wb.write(out);
  48. out.close();
  49. System.out.println("数据库导出成功") ;
  50. rs.close();
  51. con.close();
  52. }
  53. }