欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

導(dǎo)出數(shù)據(jù)庫數(shù)據(jù)到Excel

系統(tǒng) 2355 0

做了一個(gè)利用POI導(dǎo)出數(shù)據(jù)庫數(shù)據(jù)到Excel的例子,并把這個(gè)例子與大家一起分享,一起學(xué)習(xí),共同進(jìn)步!
先簡單介紹一下poi,poi是apache組織的一個(gè)開源項(xiàng)目,最新版為poi-3.0.1,要使用poi需要到apache網(wǎng)站下載poi-bin3.0.1.zip壓縮包,并將poi-3.0.1.jar加入到項(xiàng)目的ClassPath中。

下面是完成這個(gè)實(shí)例的步驟:

1、建立好一個(gè)web工程:poi;

2、導(dǎo)入所需要的jar包:poi-3.0.1.jar和mysql數(shù)據(jù)庫驅(qū)動(dòng)包;

3、編寫一個(gè)StudentResultSet類,用于取出數(shù)據(jù)庫中的數(shù)據(jù);

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. //查詢數(shù)據(jù)庫中的數(shù)據(jù)
  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、編寫一個(gè)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、編寫一個(gè)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、啟動(dòng)tomcat,運(yùn)行程序

導(dǎo)出數(shù)據(jù)庫數(shù)據(jù)到Excel


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 888奇米影视 | 国语一级毛片 | 三级视频网站 | 国产欧美一区二区三区在线看 | 色老头xxxwww作爱视频 | 99精品在线免费观看 | 国产麻豆剧传媒精品好看的片 | 久久综合九色综合国产 | 色秀视频免费网站在线观看 | 久草在线综合 | 中文字幕a∨在线乱码免费看 | 久久精品国产一区 | 亚洲日韩在线视频 | 五月激情六月 | 亚洲第一精品在线 | 久久福利剧场 | 久久久久久久影院 | www.久久久| 99久久99| 国产精品九九九久久九九 | 久久久成人精品视频 | 欧美日韩国产欧美 | 国产精品v在线播放观看 | 黄色视频a级毛片 | 日韩激情视频在线 | 激情综合五月亚洲婷婷 | 成人嘿嘿视频网站在线 | 伊人久久综合 | 91成人短视频 | 精品伊人久久久大香线蕉欧美 | 欧美三区在线 | 免费播放视频 | 国产欧美日本 | 天天综合色天天桴色 | 精品视频在线观看 | 久久中文字幕不卡一二区 | 日本在线网站 | 亚洲精品一区二区三区福利 | 欧美成a高清在线观看www | 午夜精品视频在线 | 欧洲成人午夜免费大片 |