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

導出數據庫數據到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條評論
主站蜘蛛池模板: 天天射日日干 | 欧美精品一区在线看 | 男女羞羞免费视频 | 色老头久久久久久久久久 | 99精彩视频 | 亚洲成人日韩 | 亚洲高清日韩精品第一区 | 国产午夜视频在线观看第四页 | 中文字幕三级理论影院 | 玖玖国产| 亚洲爱婷婷色婷婷五月 | 巨骚综合网 | 亚洲成人aaa| 国产成人教育视频在线观看 | 欧美毛片免费看 | 日韩欧美黄色大片 | 亚洲精品在线不卡 | 天然素人在线观看 | 中文字幕亚洲一区婷婷 | 青久久 | 亚洲人成一区二区三区 | 国产欧美日韩图片一区二区 | 久久久久青草线蕉亚洲麻豆 | 亚洲精品线在线观看 | 99精品国产在现线免费 | 国产亚洲精品美女久久久久 | 中文字幕在线不卡精品视频99 | 99国产精品免费视频 | 欧美成人精品久久精品 | 97在线免费视频观看 | 99精品一区二区三区 | 五月婷婷亚洲 | 四虎4hutv永久在线影院 | 国产精品人伦久久 | 欧美日韩高清一区 | 久久久久久综合一区中文字幕 | 欧美精欧美乱码一二三四区 | 97超视频在线观看 | 欧美日韩国产另类一区二区三区 | 99九九精品国产高清自在线 | 色视频在线 |