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

導出數據庫數據到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條評論
主站蜘蛛池模板: 日韩一区二区三区视频 | 永久免费观看黄网站 | 久久9热 | 我要看欧美精品一级毛片 | 国产全黄a一级毛片视频 | 国产高清一区二区 | 欧美体内she精视频毛片 | 久操视频网站 | 福利视频精品 | 一级高清毛片免费a级高清毛片 | 99精品欧美一区 | 在线成人tv天堂中文字幕 | 99久久免费精品 | 国产精品午夜波多野结衣性色 | 国产成人久久精品区一区二区 | 成人午夜毛片 | 视频一区二区在线 | 九九99视频在线观看视频观看 | 精品天海翼一区二区 | 热久久久久| 在线看一区 | 最近手机中文字幕1页 | 亚洲国产成人精品一区二区三区 | 亚洲综合网址 | 欧美精彩狠狠色丁香婷婷 | 亚洲二三区| 国产成人一区二区在线不卡 | 国产一区中文字幕 | 久久www免费人成看片色多多 | a一级黄色片 | 亚洲国产成人久久一区www | 老子影院无码午夜伦不卡 | 四虎影视国产精品婷婷 | 久久婷婷五月综合色丁香 | 日韩欧国产精品一区综合无码 | 国内精品小视频 | 国产在线观看一区二区三区四区 | 992人人草 | 色老师| 91福利一区二区在线观看 | 日本一级特级毛片视频 |