黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

JAVA操作Excel參考

系統(tǒng) 2552 0

Java Excel是一開(kāi)放源碼項(xiàng)目,通過(guò)它Java開(kāi)發(fā)人員可以讀取Excel文件的內(nèi)容、創(chuàng)建新的Excel文件、更新已經(jīng)存在的Excel文件。

?

?? 今天突然翻到了以前的一個(gè)測(cè)試,好像也是從哪里拷貝修改改過(guò)的,注釋里有個(gè)IBM的鏈接 http://www.ibm.com/developerworks/cn/java/l-javaExcel/?ca=j-t10,貼上來(lái)當(dāng)作一個(gè)入門(mén)參考資料吧。

?

Java代碼 復(fù)制代碼
  1. import ?java.io.File; ??
  2. import ?java.io.IOException; ??
  3. ??
  4. import ?jxl.Cell; ??
  5. import ?jxl.HeaderFooter; ??
  6. import ?jxl.Sheet; ??
  7. import ?jxl.Workbook; ??
  8. import ?jxl.format.VerticalAlignment; ??
  9. import ?jxl.read.biff.BiffException; ??
  10. import ?jxl.write.Label; ??
  11. import ?jxl.write.WritableCellFormat; ??
  12. import ?jxl.write.WritableImage; ??
  13. import ?jxl.write.WritableSheet; ??
  14. import ?jxl.write.WritableWorkbook; ??
  15. import ?jxl.write.WriteException; ??
  16. import ?jxl.write.biff.RowsExceededException; ??
  17. ??
  18. /** ?
  19. ?*?@author?cjj?2008-12-22?參考: ?
  20. ?*?????????http://www.ibm.com/developerworks/cn/java/l-javaExcel/?ca=j-t10 ?
  21. ?*? ?
  22. ?*? ?
  23. ?*/ ??
  24. public ? class ?ExcelUtils ??
  25. { ??
  26. ???? /** ?
  27. ?????*?讀取Excel文件的內(nèi)容 ?
  28. ?????*? ?
  29. ?????*?@param?file ?
  30. ?????*????????????待讀取的文件 ?
  31. ?????*?@return ?
  32. ?????*/ ??
  33. ???? public ? static ?String?readExcel( final ?File?file) ??
  34. ????{ ??
  35. ???????? final ?StringBuffer?sb?=? new ?StringBuffer(); ??
  36. ??
  37. ????????Workbook?wb?=? null ; ??
  38. ???????? try ??
  39. ????????{ ??
  40. ???????????? //構(gòu)造Workbook(工作?。?duì)象??? ??
  41. ????????????wb?=?Workbook.getWorkbook(file); ??
  42. ????????} ??
  43. ???????? catch ?( final ?BiffException?e) ??
  44. ????????{ ??
  45. ????????????e.printStackTrace(); ??
  46. ????????} ??
  47. ???????? catch ?( final ?IOException?e) ??
  48. ????????{ ??
  49. ????????????e.printStackTrace(); ??
  50. ????????} ??
  51. ??
  52. ???????? if ?(wb?==? null )? return ? null ; ??
  53. ??
  54. ???????? //獲得了Workbook對(duì)象之后,就可以通過(guò)它得到Sheet(工作表)對(duì)象了??? ??
  55. ???????? final ?Sheet[]?sheet?=?wb.getSheets(); ??
  56. ??
  57. ???????? if ?(sheet?!=? null ?&&?sheet.length?>? 0 ) ??
  58. ????????{ ??
  59. ???????????? //對(duì)每個(gè)工作表進(jìn)行循環(huán)??? ??
  60. ???????????? for ?( int ?i?=? 0 ;?i?<?sheet.length;?i++) ??
  61. ????????????{ ??
  62. ???????????????? //得到當(dāng)前工作表的行數(shù)??? ??
  63. ???????????????? final ? int ?rowNum?=?sheet[i].getRows(); ??
  64. ???????????????? for ?( int ?j?=? 0 ;?j?<?rowNum;?j++) ??
  65. ????????????????{ ??
  66. ???????????????????? //得到當(dāng)前行的所有單元格??? ??
  67. ???????????????????? final ?Cell[]?cells?=?sheet[i].getRow(j); ??
  68. ???????????????????? if ?(cells?!=? null ?&&?cells.length?>? 0 ) ??
  69. ????????????????????{ ??
  70. ???????????????????????? //對(duì)每個(gè)單元格進(jìn)行循環(huán)??? ??
  71. ???????????????????????? for ?( int ?k?=? 0 ;?k?<?cells.length;?k++) ??
  72. ????????????????????????{ ??
  73. ???????????????????????????? //讀取當(dāng)前單元格的值??? ??
  74. ???????????????????????????? final ?String?cellValue?=?cells[k].getContents(); ??
  75. ????????????????????????????sb.append(cellValue?+? "\t" ); ??
  76. ????????????????????????} ??
  77. ????????????????????} ??
  78. ????????????????????sb.append( "\r\n" ); ??
  79. ????????????????} ??
  80. ????????????????sb.append( "\r\n" ); ??
  81. ????????????} ??
  82. ????????} ??
  83. ???????? //最后關(guān)閉資源,釋放內(nèi)存??? ??
  84. ????????wb.close(); ??
  85. ???????? return ?sb.toString(); ??
  86. ????} ??
  87. ??
  88. ???? /** ?
  89. ?????*?生成一個(gè)Excel文件 ?
  90. ?????*? ?
  91. ?????*?@param?fileName ?
  92. ?????*????????????要生成的Excel文件名 ?
  93. ?????*/ ??
  94. ???? public ? static ? void ?writeExcel( final ?String?fileName) ??
  95. ????{ ??
  96. ????????WritableWorkbook?wwb?=? null ; ??
  97. ???????? //格式化 ??
  98. ???????? final ?WritableCellFormat?totalFormat?=? new ?WritableCellFormat(); ??
  99. ???????? try ??
  100. ????????{ ??
  101. ???????????? //首先要使用Workbook類的工廠方法創(chuàng)建一個(gè)可寫(xiě)入的工作薄(Workbook)對(duì)象??? ??
  102. ????????????wwb?=?Workbook.createWorkbook( new ?File(fileName)); ??
  103. ???????????? //格式化劇中 ??
  104. ????????????totalFormat.setVerticalAlignment(VerticalAlignment.CENTRE); ??
  105. ??
  106. ????????} ??
  107. ???????? catch ?( final ?IOException?e) ??
  108. ????????{ ??
  109. ????????????e.printStackTrace(); ??
  110. ????????} ??
  111. ???????? catch ?( final ?WriteException?e) ??
  112. ????????{ ??
  113. ????????????e.printStackTrace(); ??
  114. ????????} ??
  115. ???????? if ?(wwb?!=? null ) ??
  116. ????????{ ??
  117. ???????????? //創(chuàng)建一個(gè)可寫(xiě)入的工作表??? ??
  118. ???????????? //Workbook的createSheet方法有兩個(gè)參數(shù),第一個(gè)是工作表的名稱,第二個(gè)是工作表在工作薄中的位置??? ??
  119. ???????????? final ?WritableSheet?ws?=?wwb.createSheet( "sheet1" ,? 0 ); ??
  120. ??
  121. ???????????? //下面開(kāi)始添加單元格??? ??
  122. ???????????? for ?( int ?i?=? 0 ;?i?<? 10 ;?i++) ??
  123. ????????????{ ??
  124. ???????????????? for ?( int ?j?=? 0 ;?j?<? 5 ;?j++) ??
  125. ????????????????{ ??
  126. ???????????????????? //這里需要注意的是,在Excel中,第一個(gè)參數(shù)表示列,第二個(gè)表示行??? ??
  127. ???????????????????? final ?Label?labelC?=? new ?Label(j,?i,? "這是第" ?+?(i?+? 1 )?+? "行,第" ?+?(j?+? 1 )?+? "列" ,?totalFormat); ??
  128. ???????????????????? try ??
  129. ????????????????????{ ??
  130. ???????????????????????? //將生成的單元格添加到工作表中??? ??
  131. ????????????????????????ws.addCell(labelC); ??
  132. ????????????????????} ??
  133. ???????????????????? catch ?( final ?RowsExceededException?e) ??
  134. ????????????????????{ ??
  135. ????????????????????????e.printStackTrace(); ??
  136. ????????????????????} ??
  137. ???????????????????? catch ?( final ?WriteException?e) ??
  138. ????????????????????{ ??
  139. ????????????????????????e.printStackTrace(); ??
  140. ????????????????????} ??
  141. ??
  142. ????????????????} ??
  143. ????????????} ??
  144. ??
  145. ???????????? try ??
  146. ????????????{ ??
  147. ???????????????? //把?單元格(column,?row)到單元格(column1,?row1)進(jìn)行合并。 ??
  148. ????????????????ws.mergeCells( 6 ,? 0 ,? 6 ,? 3 ); ??
  149. ???????????????? //從內(nèi)存中寫(xiě)入文件中??? ??
  150. ????????????????wwb.write(); ??
  151. ???????????????? //關(guān)閉資源,釋放內(nèi)存??? ??
  152. ????????????????wwb.close(); ??
  153. ????????????} ??
  154. ???????????? catch ?( final ?IOException?e) ??
  155. ????????????{ ??
  156. ????????????????e.printStackTrace(); ??
  157. ????????????} ??
  158. ???????????? catch ?( final ?WriteException?e) ??
  159. ????????????{ ??
  160. ????????????????e.printStackTrace(); ??
  161. ????????????} ??
  162. ????????} ??
  163. ????} ??
  164. ??
  165. ???? /** ?
  166. ?????*?搜索某一個(gè)文件中是否包含某個(gè)關(guān)鍵字 ?
  167. ?????*? ?
  168. ?????*?@param?file ?
  169. ?????*????????????待搜索的文件 ?
  170. ?????*?@param?keyWord ?
  171. ?????*????????????要搜索的關(guān)鍵字 ?
  172. ?????*?@return ?
  173. ?????*/ ??
  174. ???? public ? static ? boolean ?searchKeyWord( final ?File?file,? final ?String?keyWord) ??
  175. ????{ ??
  176. ???????? boolean ?res?=? false ; ??
  177. ??
  178. ????????Workbook?wb?=? null ; ??
  179. ???????? try ??
  180. ????????{ ??
  181. ???????????? //構(gòu)造Workbook(工作?。?duì)象??? ??
  182. ????????????wb?=?Workbook.getWorkbook(file); ??
  183. ????????} ??
  184. ???????? catch ?( final ?BiffException?e) ??
  185. ????????{ ??
  186. ???????????? return ?res; ??
  187. ????????} ??
  188. ???????? catch ?( final ?IOException?e) ??
  189. ????????{ ??
  190. ???????????? return ?res; ??
  191. ????????} ??
  192. ??
  193. ???????? if ?(wb?==? null )? return ?res; ??
  194. ??
  195. ???????? //獲得了Workbook對(duì)象之后,就可以通過(guò)它得到Sheet(工作表)對(duì)象了??? ??
  196. ???????? final ?Sheet[]?sheet?=?wb.getSheets(); ??
  197. ??
  198. ???????? boolean ?breakSheet?=? false ; ??
  199. ??
  200. ???????? if ?(sheet?!=? null ?&&?sheet.length?>? 0 ) ??
  201. ????????{ ??
  202. ???????????? //對(duì)每個(gè)工作表進(jìn)行循環(huán)??? ??
  203. ???????????? for ?( int ?i?=? 0 ;?i?<?sheet.length;?i++) ??
  204. ????????????{ ??
  205. ???????????????? if ?(breakSheet)? break ; ??
  206. ??
  207. ???????????????? //得到當(dāng)前工作表的行數(shù)??? ??
  208. ???????????????? final ? int ?rowNum?=?sheet[i].getRows(); ??
  209. ??
  210. ???????????????? boolean ?breakRow?=? false ; ??
  211. ??
  212. ???????????????? for ?( int ?j?=? 0 ;?j?<?rowNum;?j++) ??
  213. ????????????????{ ??
  214. ???????????????????? if ?(breakRow)? break ; ??
  215. ???????????????????? //得到當(dāng)前行的所有單元格??? ??
  216. ???????????????????? final ?Cell[]?cells?=?sheet[i].getRow(j); ??
  217. ???????????????????? if ?(cells?!=? null ?&&?cells.length?>? 0 ) ??
  218. ????????????????????{ ??
  219. ???????????????????????? boolean ?breakCell?=? false ; ??
  220. ???????????????????????? //對(duì)每個(gè)單元格進(jìn)行循環(huán)??? ??
  221. ???????????????????????? for ?( int ?k?=? 0 ;?k?<?cells.length;?k++) ??
  222. ????????????????????????{ ??
  223. ???????????????????????????? if ?(breakCell)? break ; ??
  224. ???????????????????????????? //讀取當(dāng)前單元格的值??? ??
  225. ???????????????????????????? final ?String?cellValue?=?cells[k].getContents(); ??
  226. ???????????????????????????? if ?(cellValue?==? null )? continue ; ??
  227. ???????????????????????????? if ?(cellValue.contains(keyWord)) ??
  228. ????????????????????????????{ ??
  229. ????????????????????????????????res?=? true ; ??
  230. ????????????????????????????????breakCell?=? true ; ??
  231. ????????????????????????????????breakRow?=? true ; ??
  232. ????????????????????????????????breakSheet?=? true ; ??
  233. ????????????????????????????} ??
  234. ????????????????????????} ??
  235. ????????????????????} ??
  236. ????????????????} ??
  237. ????????????} ??
  238. ????????} ??
  239. ???????? //最后關(guān)閉資源,釋放內(nèi)存??? ??
  240. ????????wb.close(); ??
  241. ??
  242. ???????? return ?res; ??
  243. ????} ??
  244. ??
  245. ???? /** ?
  246. ?????*?往Excel中插入圖片 ?
  247. ?????*? ?
  248. ?????*?@param?dataSheet ?
  249. ?????*????????????待插入的工作表 ?
  250. ?????*?@param?col ?
  251. ?????*????????????圖片從該列開(kāi)始 ?
  252. ?????*?@param?row ?
  253. ?????*????????????圖片從該行開(kāi)始 ?
  254. ?????*?@param?width ?
  255. ?????*????????????圖片所占的列數(shù) ?
  256. ?????*?@param?height ?
  257. ?????*????????????圖片所占的行數(shù) ?
  258. ?????*?@param?imgFile ?
  259. ?????*????????????要插入的圖片文件 ?
  260. ?????*/ ??
  261. ???? public ? static ? void ?insertImg(??? final ?WritableSheet?dataSheet, ??
  262. ???????????????????????????????????? final ? int ?col, ??
  263. ???????????????????????????????????? final ? int ?row, ??
  264. ???????????????????????????????????? final ? int ?width, ??
  265. ???????????????????????????????????? final ? int ?height, ??
  266. ???????????????????????????????????? final ?File?imgFile) ??
  267. ????{ ??
  268. ???????? final ?WritableImage?img?=? new ?WritableImage(col,?row,?width,?height,?imgFile); ??
  269. ????????dataSheet.addImage(img); ??
  270. ????} ??
  271. ??
  272. ???? /** ?
  273. ?????*?向Excel中加入頁(yè)眉頁(yè)腳 ?
  274. ?????*? ?
  275. ?????*?@param?dataSheet ?
  276. ?????*????????????待加入頁(yè)眉的工作表 ?
  277. ?????*?@param?left ?
  278. ?????*?@param?center ?
  279. ?????*?@param?right ?
  280. ?????*/ ??
  281. ???? public ? static ? void ?setHeader(??? final ?WritableSheet?dataSheet, ??
  282. ???????????????????????????????????? final ?String?left, ??
  283. ???????????????????????????????????? final ?String?center, ??
  284. ???????????????????????????????????? final ?String?right) ??
  285. ????{ ??
  286. ???????? final ?HeaderFooter?hf?=? new ?HeaderFooter(); ??
  287. ????????hf.getLeft().append(left); ??
  288. ????????hf.getCentre().append(center); ??
  289. ????????hf.getRight().append(right); ??
  290. ???????? //加入頁(yè)眉??? ??
  291. ????????dataSheet.getSettings().setHeader(hf); ??
  292. ???????? //加入頁(yè)腳??? ??
  293. ???????? //dataSheet.getSettings().setFooter(hf);??? ??
  294. ????} ??
  295. ??
  296. ???? //測(cè)試 ??
  297. ???? public ? static ? void ?main( final ?String[]?arts) ??
  298. ????{ ??
  299. ??
  300. ???????? //測(cè)試寫(xiě) ??
  301. ????????ExcelUtils.writeExcel( "test.xls" ); ??
  302. ??
  303. ???????? if ?( false ) ??
  304. ????????{ ??
  305. ???????????? //測(cè)試插入頁(yè)眉頁(yè)腳 ??
  306. ???????????? try ??
  307. ????????????{ ??
  308. ???????????????? //創(chuàng)建一個(gè)工作薄??? ??
  309. ???????????????? final ?WritableWorkbook?workbook?=?Workbook.createWorkbook( new ?File( "test.xls" )); ??
  310. ???????????????? //待插入的工作表??? ??
  311. ???????????????? final ?WritableSheet?dataSheet?=?workbook.createSheet( "加入頁(yè)眉" ,? 0 ); ??
  312. ????????????????ExcelUtils.setHeader(dataSheet,? "chb" ,? "2007-03-06" ,? "第1頁(yè),共3頁(yè)" ); ??
  313. ????????????????workbook.write(); ??
  314. ????????????????workbook.close(); ??
  315. ????????????} ??
  316. ???????????? catch ?( final ?IOException?e) ??
  317. ????????????{ ??
  318. ????????????????e.printStackTrace(); ??
  319. ????????????} ??
  320. ???????????? catch ?( final ?WriteException?e) ??
  321. ????????????{ ??
  322. ????????????????e.printStackTrace(); ??
  323. ????????????} ??
  324. ????????} ??
  325. ??
  326. ???????? if ?( false ) ??
  327. ????????{ ??
  328. ???????????? //測(cè)試插入圖片 ??
  329. ???????????? try ??
  330. ????????????{ ??
  331. ???????????????? //創(chuàng)建一個(gè)工作薄??? ??
  332. ???????????????? final ?WritableWorkbook?workbook?=?Workbook.createWorkbook( new ?File( "D:/testxls" )); ??
  333. ???????????????? //待插入的工作表??? ??
  334. ???????????????? final ?WritableSheet?imgSheet?=?workbook.createSheet( "Images" ,? 0 ); ??
  335. ???????????????? //要插入的圖片文件??? ??
  336. ???????????????? final ?File?imgFile?=? new ?File( "D:/png" ); ??
  337. ???????????????? //圖片插入到第二行第一個(gè)單元格,長(zhǎng)寬各占六個(gè)單元格??? ??
  338. ????????????????insertImg(imgSheet,? 0 ,? 1 ,? 6 ,? 6 ,?imgFile); ??
  339. ????????????????workbook.write(); ??
  340. ????????????????workbook.close(); ??
  341. ????????????} ??
  342. ???????????? catch ?( final ?IOException?e) ??
  343. ????????????{ ??
  344. ????????????????e.printStackTrace(); ??
  345. ????????????} ??
  346. ???????????? catch ?( final ?WriteException?e) ??
  347. ????????????{ ??
  348. ????????????????e.printStackTrace(); ??
  349. ????????????} ??
  350. ????????} ??
  351. ??
  352. ????} ??
  353. }??

JAVA操作Excel參考


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論