亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

導出數據庫數據到Excel

系統 2262 0

做了一個利用POI導出數據庫數據到Excel的例子,并把這個例子與大家一起分享,一起學習,共同進步!
先簡單介紹一下poi,poi是apache組織的一個開源項目,最新版為poi-3.0.1,要使用poi需要到apache網站下載poi-bin3.0.1.zip壓縮包,并將poi-3.0.1.jar加入到項目的ClassPath中。

下面是完成這個實例的步驟:

1、建立好一個web工程:poi;

2、導入所需要的jar包:poi-3.0.1.jar和mysql數據庫驅動包;

3、編寫一個StudentResultSet類,用于取出數據庫中的數據;

Java代碼
  1. package org.hnylj.poi;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. public class StudentResultSet{
  8. private Connectionconn;
  9. private PreparedStatementpstmt;
  10. private ResultSetrs;
  11. private static final StringDRIVER= "com.mysql.jdbc.Driver" ;
  12. private static final StringURL= "jdbc:mysql://localhost:3306/poi" ;
  13. private static final StringUSERNAME= "root" ;
  14. private static final StringPASSWORD= "123" ;
  15. //查詢數據庫中的數據
  16. public ResultSetquery(){
  17. try {
  18. Class.forName(DRIVER);
  19. conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);
  20. pstmt=conn.prepareStatement( "select*fromstudent" );
  21. rs=pstmt.executeQuery();
  22. } catch (ClassNotFoundExceptione){
  23. e.printStackTrace();
  24. } catch (SQLExceptione){
  25. e.printStackTrace();
  26. }
  27. return rs;
  28. }
  29. }

4、編寫一個BuildExcelServlet,用于生成Excel;

Java代碼
  1. package org.hnylj.poi;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.sql.ResultSet;
  5. import java.sql.ResultSetMetaData;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import org.apache.poi.hssf.usermodel.HSSFCell;
  11. import org.apache.poi.hssf.usermodel.HSSFRichTextString;
  12. import org.apache.poi.hssf.usermodel.HSSFRow;
  13. import org.apache.poi.hssf.usermodel.HSSFSheet;
  14. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  15. public class BuildExcelServlet extends HttpServlet{
  16. protected void doGet(HttpServletRequestrequest,
  17. HttpServletResponseresponse) throws ServletException,IOException{
  18. StudentResultSetstuResultSet= new StudentResultSet();
  19. ResultSetrs=stuResultSet.query();
  20. StringxlsName= "test.xls" ;
  21. StringsheetName= "sheetName" ;
  22. HSSFWorkbookworkbook= new HSSFWorkbook();
  23. HSSFSheetsheet=workbook.createSheet();
  24. workbook.setSheetName( 0 ,sheetName);
  25. HSSFRowrow=sheet.createRow(( short ) 0 );
  26. HSSFCellcell;
  27. try {
  28. ResultSetMetaDatamd=rs.getMetaData();
  29. int nColumn=md.getColumnCount();
  30. for ( int i= 1 ;i<=nColumn;i++){
  31. cell=row.createCell(( short )(i- 1 ));
  32. cell.setCellType(HSSFCell.CELL_TYPE_STRING);
  33. cell.setCellValue( new HSSFRichTextString(md.getColumnLabel(i)));
  34. }
  35. int iRow= 1 ;
  36. while (rs.next()){
  37. row=sheet.createRow(( short )iRow);
  38. ;
  39. for ( int j= 1 ;j<=nColumn;j++){
  40. cell=row.createCell(( short )(j- 1 ));
  41. cell.setCellType(HSSFCell.CELL_TYPE_STRING);
  42. cell.setCellValue( new HSSFRichTextString(rs.getObject(j)
  43. .toString()));
  44. }
  45. iRow++;
  46. }
  47. Stringfilename=request.getRealPath( "/" )+xlsName;
  48. request.setAttribute( "filename" ,filename);
  49. FileOutputStreamfOut= new FileOutputStream(filename);
  50. workbook.write(fOut);
  51. fOut.flush();
  52. fOut.close();
  53. request.getRequestDispatcher( "OpenExcelServlet" ).forward(request,
  54. response);
  55. } catch (Exceptione){
  56. e.printStackTrace();
  57. }
  58. }
  59. protected void doPost(HttpServletRequestrequest,
  60. HttpServletResponseresponse) throws ServletException,IOException{
  61. this .doGet(request,response);
  62. }
  63. }

5、編寫一個OpenExcelServlet,用于把生成的Excel在頁面上打開;

Java代碼
  1. package org.hnylj.poi;
  2. import java.io.BufferedInputStream;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. import java.io.PrintWriter;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. public class OpenExcelServlet extends HttpServlet{
  11. public void doGet(HttpServletRequestrequest,HttpServletResponseresponse)
  12. throws ServletException,IOException{
  13. response.setContentType( "application/vnd.ms-excel" );
  14. PrintWriterout=response.getWriter();
  15. StringfilePath=(String)request.getAttribute( "filename" );
  16. BufferedInputStreambis= null ;
  17. try {
  18. bis= new BufferedInputStream( new FileInputStream(filePath));
  19. int bytesRead;
  20. while ((bytesRead=bis.read())!=- 1 ){
  21. out.write(bytesRead);
  22. out.flush();
  23. }
  24. } catch (IOExceptione){
  25. e.printStackTrace();
  26. } finally {
  27. if (bis!= null )
  28. bis.close();
  29. if (out!= null )
  30. out.close();
  31. }
  32. }
  33. public void doPost(HttpServletRequestrequest,HttpServletResponseresponse)
  34. throws ServletException,IOException{
  35. this .doGet(request,response);
  36. }
  37. }

6、在web.xml里配置一下servlet的映射;

Xml代碼
  1. < servlet >
  2. < servlet-name > BuildExcelServlet </ servlet-name >
  3. < servlet-class > org.hnylj.poi.BuildExcelServlet </ servlet-class >
  4. </ servlet >
  5. < servlet >
  6. < servlet-name > OpenExcelServlet </ servlet-name >
  7. < servlet-class > org.hnylj.poi.OpenExcelServlet </ servlet-class >
  8. </ servlet >
  9. < servlet-mapping >
  10. < servlet-name > OpenExcelServlet </ servlet-name >
  11. < url-pattern > /OpenExcelServlet </ url-pattern >
  12. </ servlet-mapping >
  13. < servlet-mapping >
  14. < servlet-name > BuildExcelServlet </ servlet-name >
  15. < url-pattern > /BuildExcelServlet </ url-pattern >
  16. </ servlet-mapping >

7、啟動tomcat,運行程序

導出數據庫數據到Excel


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产毛片久久久久久国产毛片 | 欧美观看一级毛片 | 五月婷婷六月激情 | 免费国内精品久久久久影院 | 日本黄页网址 | 国产大片91精品免费看3 | 日韩精品福利视频一区二区三区 | 九九影院 影片 | 久久只有这里有精品 | 欧美一级暴毛片 | 中文字幕人成乱码第一页 | 伊人国产视频 | 日日日日干 | 五月色婷婷亚洲精品 | 自拍 欧美 在线 综合 另类 | 99久久精品国产片 | 久久精品国产亚洲欧美 | 前任4在线观看 | 天天做天天干 | 狠狠色综合久久丁香婷婷 | 日韩精品一区二三区中文 | 伊人婷婷色香五月综合缴缴情 | 99久久久国产精品免费播放器 | 人成午夜欧美大片免费视频 | xxxxyoujizz护士| 久久夜色tv网站免费影院 | 国产一区二区三区久久精品小说 | 久久成人精品视频 | 久久66热re国产毛片基地 | 性做久久久久久蜜桃花 | 久热精品视频 | 亚洲国产欧美日韩 | 老司机日日摸夜夜摸精品影院 | 欧美伊香蕉久久综合类网站 | 一级日本高清视频免费观看 | 日韩欧美国产高清 | 精品日韩在线视频一区二区三区 | 911福利视频 | 香蕉视频一区二区三区 | 国产精品亚洲一区二区在线观看 | 成年女人视频网站免费m |