小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

利用jxl實(shí)現(xiàn)將數(shù)據(jù)從Excel中導(dǎo)入到Mysql數(shù)據(jù)庫中

 qin5 2011-08-17
  1. package jsl.test;
  2. import java.io.File;
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import jxl.Cell;
  7. import jxl.Sheet;
  8. import jxl.Workbook;
  9. public class ImportExcel {
  10. /**
  11. * (最基本的導(dǎo)入操作.)
  12. *
  13. * Author lip(Lizg)
  14. * 2009-1-9
  15. *
  16. * 同上一個一樣,這一個也是簡單的導(dǎo)入操作,其實(shí)同樣是最基本的需求而已,
  17. * 再加上一些處理就可以了,比如自己字段的處理,導(dǎo)入文件是否保存下來之類的.
  18. *
  19. * 這里同樣以一個main來說明一下其基本的操作過程.
  20. *
  21. * 導(dǎo)入,就是從Excel中去取出數(shù)據(jù),然后寫入到數(shù)據(jù)庫(這里就是數(shù)據(jù)庫操作吧,相對于其他的Excel間操作之類的就省略)
  22. *
  23. * 第一,同樣是先準(zhǔn)備好數(shù)據(jù)來源.這里不是建立好Excel,而是在那個盤符下建立一個導(dǎo)入Excel,并有數(shù)據(jù),然后導(dǎo)入即可.
  24. *
  25. * 接上一個例子.這一個同樣是對MySQL操作,當(dāng)然可以換成其他的諸如Oracle,SQLServer之類的.
  26. *
  27. */
  28. public static void main(String[] args) {
  29. //(第一:)首先申明讀取的的文件來源.再次申明,這里的都是直接的,我認(rèn)為最基本但是又容易看懂的.
  30. File importExcel = new File("c:\\測試.xls");
  31. //這里確認(rèn)這個文件是存在的,當(dāng)然可以判斷一下.用file.exists().看其是否存在,
  32. /**(第一步完成)*/
  33. //(第二:)然后就先來連接數(shù)據(jù)庫吧.同樣是對同一個數(shù)據(jù)庫操作,只是這里新增加一個表.見最下面.
  34. try{
  35. //數(shù)據(jù)庫連接
  36. Class.forName("com.mysql.jdbc.Driver").newInstance();
  37. Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
  38. PreparedStatement prep = conn.prepareStatement("insert into importexcel (id,name) values (?,?)");
  39. //這里是插入,用這個來的比較方便,所以就直接用這個接口來操作吧.
  40. //System.out.println("Success");
  41. /**(第二步完成)*/
  42. /**
  43. * 到這里,已經(jīng)連接好了數(shù)據(jù)庫了,然后就是上傳了,這里的sql語句就是插入,很簡單,這里來看看讀出數(shù)據(jù).
  44. *
  45. */
  46. //(第三步:)操作Excel文件讀出里面的數(shù)據(jù),其實(shí)思想是一樣的,就是普通思維,
  47. //獲取Excel文件---->讀取每一個工作單元(就跟前一個導(dǎo)入一樣的是每一個整體表格)---->讀取(一個表格)每一行的內(nèi)容------(讀取完成.)
  48. //首先是獲取文件,也就是上面的Excel文件,這里是或者這個Excel文件.然后就是對之進(jìn)行操作.
  49. Workbook workBook = Workbook.getWorkbook(importExcel);
  50. //其次就是獲取這個Excel文件的工作表格.這里就基本處理,當(dāng)然可以不用數(shù)組形式,因?yàn)橹挥械谝粋€工作表格有數(shù)據(jù),其他兩個沒有,
  51. //但是為了一般化,就仍然這樣操作.
  52. Sheet[] sheet = workBook.getSheets();
  53. //這里大家看一下API就能夠知道,其實(shí)可以通過參數(shù)來獲得哪一個表格就行了,
  54. //比如Sheet sheet = workBook.getSheet(1);
  55. //這里就到了最后了,這里的最后就是對于工作表格的最后,既然是用數(shù)組來得到的,當(dāng)然會對每一個工作表格進(jìn)行讀取操作,
  56. //這里的讀取就是讀取每一個工作表格的每一行數(shù)據(jù).
  57. int sheet_i_num = 0;//獲取工作表格的行數(shù)
  58. String id = "";
  59. String name = "";//用來得到每一個單元格的內(nèi)容,下面用到.
  60. if(sheet!=null&&sheet.length>0){//判斷一下
  61. for(int sheetNum=0;sheetNum < sheet.length; sheetNum++){//獲得有多少個工作表格,對每一個操作.
  62. //(3.1這里首先要得到要讀取的工作表格有多少行.)
  63. sheet_i_num = sheet[sheetNum].getRows();
  64. //接下來就是對每一行進(jìn)行的去數(shù)據(jù)了,此處從rowNum = 1開始,第一行一般是標(biāo)題
  65. for(int rowNum = 1; rowNum < sheet_i_num ; rowNum++){
  66. //這里就開始對每一個單元格進(jìn)行操作了.
  67. //顯然,sheet[]第一個參數(shù)就是哪一個工作表格,然后getRow的就是哪一行.然后就賦值給Cell進(jìn)行操作.
  68. Cell[] cells = sheet[sheetNum].getRow(rowNum);
  69. //這里就開始讀出每一行的數(shù)據(jù)了,這里不做其他的判斷,比如,數(shù)據(jù)是整數(shù)否,是否超出字符串長度,是否為空等等,
  70. id = cells[0].getContents();
  71. name = cells[1].getContents();//這里就是對每一個列來獲取,cells就是把這一行的某一列賦值給你所要操作的值.
  72. //數(shù)據(jù)是取到了,然后就是直接插入到數(shù)據(jù)庫當(dāng)中了,
  73. prep.setInt(1, Integer.parseInt(id));
  74. prep.setString(2, name);
  75. prep.executeUpdate();
  76. System.out.println(id+"--------"+name);
  77. }
  78. }
  79. }
  80. workBook.close();
  81. prep.close();
  82. conn.close();
  83. }catch(Exception e){
  84. System.out.println(e.getMessage());
  85. }
  86. finally{
  87. }
  88. }
  89. }
  90. /**
  91. 第一步:建立數(shù)據(jù)表:(表名稱叫做importexcel)
  92. DROP TABLE IF EXISTS `importexcel`;
  93. CREATE TABLE `importexcel` (
  94. `Id` int(11) NOT NULL auto_increment,
  95. `name` varchar(50) default NULL,
  96. PRIMARY KEY (`Id`)
  97. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  98. 這個時(shí)候,里面什么都沒有,
  99. 可以用select看看,
  100. */
  101. /*
  102. 然后就是操作這個數(shù)據(jù)表字段.往里面添加數(shù)據(jù),這里明顯是 只有兩個字段,第一個是ID,(int整數(shù)類型)
  103. 第二個是NAME,(varchar字符串類型)
  104. 很明顯都能過看得出來.
  105. 然后再來一次select試試.
  106. */

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多