讀取Excel表格,拷貝、更新Excel工作薄

*

Description:可以讀取Excel文件的內容,更新Excel工作薄*

*

Copyright:Copyright(c)Corparation2005

*

程序開發環境為eclipse

*@authorWalker*@version1.0*/packagecn.com.yitong.xls;importjava.io.File;impor" />

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

使用JXL讀取Excel表格,拷貝、更新Excel工作薄

系統 1705 0
Java代碼 復制代碼
  1. /** ?
  2. *?<p>讀取Excel表格,拷貝、更新Excel工作薄?</p> ?
  3. *?<p>Description:?可以讀取Excel文件的內容,更新Excel工作薄 ?
  4. *?</p> ?
  5. *?<p>Copyright:?Copyright?(c)?Corparation?2005</p> ?
  6. *?<p>程序開發環境為eclipse</p> ?
  7. *?@author?Walker ?
  8. *?@version?1.0 ?
  9. */ ??
  10. package ?cn.com.yitong.xls; ??
  11. ??
  12. import ?java.io.File; ??
  13. import ?java.io.FileInputStream; ??
  14. import ?java.io.InputStream; ??
  15. import ?java.util.Vector; ??
  16. ??
  17. import ?cn.com.yitong.ChartImg; ??
  18. import ?cn.com.yitong.VireObj; ??
  19. import ?cn.com.yitong.platform.log.YTLogger; ??
  20. ??
  21. import ?<SPAN? class =hilite1>jxl</SPAN>.CellType; ??
  22. import ?<SPAN? class =hilite1>jxl</SPAN>.Workbook; ??
  23. import ?<SPAN? class =hilite1>jxl</SPAN>.format.CellFormat; ??
  24. import ?<SPAN? class =hilite1>jxl</SPAN>.format.Colour; ??
  25. import ?<SPAN? class =hilite1>jxl</SPAN>.format.UnderlineStyle; ??
  26. import ?<SPAN? class =hilite1>jxl</SPAN>.write.Formula; ??
  27. import ?<SPAN? class =hilite1>jxl</SPAN>.write.Label; ??
  28. import ?<SPAN? class =hilite1>jxl</SPAN>.write.Number; ??
  29. import ?<SPAN? class =hilite1>jxl</SPAN>.write.WritableCell; ??
  30. import ?<SPAN? class =hilite1>jxl</SPAN>.write.WritableCellFormat; ??
  31. import ?<SPAN? class =hilite1>jxl</SPAN>.write.WritableFont; ??
  32. import ?<SPAN? class =hilite1>jxl</SPAN>.write.WritableImage; ??
  33. import ?<SPAN? class =hilite1>jxl</SPAN>.write.WritableSheet; ??
  34. import ?<SPAN? class =hilite1>jxl</SPAN>.write.WritableWorkbook; ??
  35. import ?<SPAN? class =hilite1>jxl</SPAN>.write.WriteException; ??
  36. import ?<SPAN? class =hilite1>jxl</SPAN>.write.biff.RowsExceededException; ??
  37. ??
  38. public ? class ?XLSDemo ??
  39. { ??
  40. ???? private ? static ? final ? int ?TITLE_LENGTH?=? 7 ; ??
  41. ???? private ? static ? final ? int ?SHEET_WIDTH?=? 32 ; ??
  42. ???? private ? static ? final ? int ?SHEET_HEIGHT?=? 116 ; ??
  43. ???? ??
  44. ???? /** ?
  45. ?????*?創建Excel ?
  46. ?????*/ ??
  47. ???? private ? void ?makeXls() ??
  48. ????{ ??
  49. ????????Workbook?workbook?=? null ; ??
  50. ???????? try ??
  51. ????????{ ??
  52. ???????????? //?構建Workbook對象,?只讀Workbook對象 ??
  53. ???????????? //?直接從本地文件創建Workbook,?從輸入流創建Workbook ??
  54. ????????????InputStream?ins?=? new ?FileInputStream( "D:/Workspace/testproj/source.xls" ); ??
  55. ????????????workbook?=?Workbook.getWorkbook(ins); ??
  56. ??
  57. ???????????? //?利用已經創建的Excel工作薄創建新的可寫入的Excel工作薄 ??
  58. ????????????File?outFile?=? new ?File( "D:/Workspace/testproj/test.xls" ); ??
  59. ????????????WritableWorkbook?wwb?=?Workbook.createWorkbook(outFile,?workbook); ??
  60. ???????????? //?讀取第一張工作表 ??
  61. ????????????WritableSheet?dataSheet?=?wwb.getSheet( 0 ); ??
  62. ???????????? //??設置凍結單元格 ??
  63. ????????????dataSheet.getSettings().setVerticalFreeze( 7 ); ??
  64. ????????????dataSheet.getSettings().setHorizontalFreeze( 2 ); ??
  65. ???????????? ??
  66. ???????????? //?測試模擬數據 ??
  67. ????????????Vector?vecData?=? new ?Vector(); ??
  68. ???????????? for ( int ?i?=? 0 ;?i?<? 50 ;?i?++) ??
  69. ????????????{ ??
  70. ????????????????VireObj?obj?=? new ?VireObj(); ??
  71. ????????????????obj.setOrgNo( "00" ?+?i?+? "0" ); ??
  72. ????????????????obj.setOrgName( "機構" ?+?(i?+? 1 )); ??
  73. ????????????????obj.setOpenAcc(( int )( 100 ?*?Math.random())); ??
  74. ????????????????obj.setDestoryAcc(( int )( 10 ?*?Math.random())); ??
  75. ????????????????obj.setTotalAcc(( int )( 500 ?*?Math.random())); ??
  76. ????????????????obj.setMonthInCount(( int )( 500 ?*?Math.random())); ??
  77. ????????????????obj.setMonthInMoney( 500 ?*?Math.random()); ??
  78. ????????????????obj.setMonthOutCount(( int )( 500 ?*?Math.random())); ??
  79. ????????????????obj.setMonthOutMoney( 500 ?*?Math.random()); ??
  80. ???????????????? ??
  81. ????????????????vecData.add(obj); ??
  82. ????????????}???????????? ??
  83. ???????????? //?插入數據 ??
  84. ????????????insertData(wwb,?dataSheet,?vecData);???????????? ??
  85. ???????????? //?插入模擬圖像數據 ??
  86. ????????????Vector?vecImg?=? new ?Vector(); ??
  87. ???????????? for ( int ?i?=? 0 ;?i?<? 3 ;?i?++) ??
  88. ????????????{ ??
  89. ????????????????ChartImg?img?=? new ?ChartImg(); ??
  90. ????????????????img.setImgTitle( "圖像" ?+?(i?+? 1 )); ??
  91. ????????????????img.setImgName( "D:/Workspace/testproj/images/barchart.png" ); ??
  92. ????????????????vecImg.add(img); ??
  93. ????????????} ??
  94. ???????????? //?插入圖表 ??
  95. ????????????insertImgsheet(wwb,?vecImg); ??
  96. ???????????? //寫入Excel對象 ??
  97. ????????????wwb.write(); ??
  98. ????????????wwb.close(); ??
  99. ????????}? catch ?(Exception?e) ??
  100. ????????{ ??
  101. ????????????YTLogger.logDebug(e); ??
  102. ????????}? finally ??
  103. ????????{ ??
  104. ???????????? //?操作完成時,關閉對象,釋放占用的內存空間 ??
  105. ????????????workbook.close(); ??
  106. ????????} ??
  107. ????} ??
  108. ???? ??
  109. ???? /** ?
  110. ?????*?插入數據 ?
  111. ?????*?@param?wwb?WritableWorkbook?:?工作簿 ?
  112. ?????*?@param?dataSheet?WritableSheet?:?工作表 ?
  113. ?????*?@throws?RowsExceededException ?
  114. ?????*?@throws?WriteException ?
  115. ?????*/ ??
  116. ???? private ? void ?insertData(WritableWorkbook?wwb,?WritableSheet?dataSheet,?Vector?vecData)? throws ?RowsExceededException,?WriteException ??
  117. ????{ ??
  118. ???????? //?獲得標題單元格對象???????? ??
  119. ????????modiStrCell(dataSheet,? 2 ,? 0 ,? "工商銀行江蘇省分行?個人網上銀行業務種類/開銷戶明細報表(2005-12)" ,? null ); ??
  120. ???????? //?修改數據單元格數據 ??
  121. ???????? for ( int ?i?=? 0 ;?i?<?vecData.size();?i?++) ??
  122. ????????{ ??
  123. ????????????VireObj?obj?=?(VireObj)vecData.get(i); ??
  124. ????????????modiStrCell(dataSheet,? 0 ,?TITLE_LENGTH?+?i,?obj.getOrgNo(),? null ); ??
  125. ????????????modiStrCell(dataSheet,? 1 ,?TITLE_LENGTH?+?i,?obj.getOrgName(),? null ); ??
  126. ????????????modiNumCell(dataSheet,? 2 ,?TITLE_LENGTH?+?i,?obj.getOpenAcc(),? null ); ??
  127. ????????????modiNumCell(dataSheet,? 3 ,?TITLE_LENGTH?+?i,?obj.getDestoryAcc(),? null ); ??
  128. ????????????modiNumCell(dataSheet,? 4 ,?TITLE_LENGTH?+?i,?obj.getTotalAcc(),? null ); ??
  129. ????????????modiNumCell(dataSheet,? 5 ,?TITLE_LENGTH?+?i,?obj.getMonthInCount(),? null ); ??
  130. ????????????modiNumCell(dataSheet,? 6 ,?TITLE_LENGTH?+?i,?obj.getTotalInMoney(),? null ); ??
  131. ????????????modiNumCell(dataSheet,? 7 ,?TITLE_LENGTH?+?i,?obj.getMonthOutCount(),? null ); ??
  132. ????????????modiNumCell(dataSheet,? 8 ,?TITLE_LENGTH?+?i,?obj.getMonthOutMoney(),? null ); ??
  133. ????????}???? ??
  134. ???????? //?刪除空行 ??
  135. ???????? for ?( int ?j?=?vecData.size()?+?TITLE_LENGTH;?j?<?SHEET_HEIGHT;?j++) ??
  136. ????????{ ??
  137. ????????????dataSheet.removeRow(vecData.size()?+?TITLE_LENGTH); ??
  138. ????????}???????? ??
  139. ???????? //?<SPAN?class=hilite2>插入公式</SPAN> ??
  140. ???????? for ( int ?i?=? 2 ;?i?<?SHEET_WIDTH;?i?++) ??
  141. ????????{ ??
  142. ????????????modiFormulaCell(dataSheet,?i,?vecData.size()?+?TITLE_LENGTH,? 8 ,?vecData.size()?+?TITLE_LENGTH,? null ); ??
  143. ????????}???????? ??
  144. ????} ??
  145. ??
  146. ???? /** ?
  147. ?????*?修改字符單元格的值 ?
  148. ?????*?@param?dataSheet?WritableSheet?:?工作表 ?
  149. ?????*?@param?col?int?:?列 ?
  150. ?????*?@param?row?int?:?行 ?
  151. ?????*?@param?str?String?:?字符 ?
  152. ?????*?@param?format?CellFormat?:?單元格的樣式 ?
  153. ?????*?@throws?RowsExceededException ?
  154. ?????*?@throws?WriteException ?
  155. ?????*/ ??
  156. ???? private ? void ?modiStrCell(WritableSheet?dataSheet,? int ?col,? int ?row,?String?str,?CellFormat?format)? throws ?RowsExceededException,?WriteException ??
  157. ????{ ??
  158. ???????? //?獲得單元格對象 ??
  159. ????????WritableCell?cell?=?dataSheet.getWritableCell(col,?row); ??
  160. ???????? //?判斷單元格的類型,?做出相應的轉化 ??
  161. ???????? if ?(cell.getType()?==?CellType.EMPTY) ??
  162. ????????{ ??
  163. ????????????Label?lbl?=? new ?Label(col,?row,?str); ??
  164. ???????????? if ( null ?!=?format) ??
  165. ????????????{ ??
  166. ????????????????lbl.setCellFormat(format); ??
  167. ????????????}? else ??
  168. ????????????{ ??
  169. ????????????????lbl.setCellFormat(cell.getCellFormat()); ??
  170. ????????????} ??
  171. ????????????dataSheet.addCell(lbl); ??
  172. ????????}? else ? if ?(cell.getType()?==?CellType.LABEL) ??
  173. ????????{ ??
  174. ????????????Label?lbl?=?(Label)cell; ??
  175. ????????????lbl.setString(str); ??
  176. ????????}? else ? if ?(cell.getType()?==?CellType.NUMBER) ??
  177. ????????{ ??
  178. ???????????? //?數字單元格修改 ??
  179. ????????????Number?n1?=?(Number)cell; ??
  180. ????????????n1.setValue( 42.05 ); ??
  181. ????????} ??
  182. ????} ??
  183. ???? ??
  184. ???? /** ?
  185. ?????*?修改數字單元格的值 ?
  186. ?????*?@param?dataSheet?WritableSheet?:?工作表 ?
  187. ?????*?@param?col?int?:?列 ?
  188. ?????*?@param?row?int?:?行 ?
  189. ?????*?@param?num?double?:?數值 ?
  190. ?????*?@param?format?CellFormat?:?單元格的樣式 ?
  191. ?????*?@throws?RowsExceededException ?
  192. ?????*?@throws?WriteException ?
  193. ?????*/ ??
  194. ???? private ? void ?modiNumCell(WritableSheet?dataSheet,? int ?col,? int ?row,? double ?num,?CellFormat?format)? throws ?RowsExceededException,?WriteException ??
  195. ????{ ??
  196. ???????? //?獲得單元格對象 ??
  197. ????????WritableCell?cell?=?dataSheet.getWritableCell(col,?row); ??
  198. ???????? //?判斷單元格的類型,?做出相應的轉化 ??
  199. ???????? if ?(cell.getType()?==?CellType.EMPTY) ??
  200. ????????{ ??
  201. ????????????Number?lbl?=? new ?Number(col,?row,?num); ??
  202. ???????????? if ( null ?!=?format) ??
  203. ????????????{ ??
  204. ????????????????lbl.setCellFormat(format); ??
  205. ????????????}? else ??
  206. ????????????{ ??
  207. ????????????????lbl.setCellFormat(cell.getCellFormat()); ??
  208. ????????????} ??
  209. ????????????dataSheet.addCell(lbl); ??
  210. ????????}? else ? if ?(cell.getType()?==?CellType.NUMBER) ??
  211. ????????{ ??
  212. ???????????? //?數字單元格修改 ??
  213. ????????????Number?lbl?=?(Number)cell; ??
  214. ????????????lbl.setValue(num); ??
  215. ????????}? else ? if ?(cell.getType()?==?CellType.LABEL) ??
  216. ????????{ ??
  217. ????????????Label?lbl?=?(Label)cell; ??
  218. ????????????lbl.setString(String.valueOf(num)); ??
  219. ????????} ??
  220. ????} ??
  221. ???? ??
  222. ???? /** ?
  223. ?????*?修改公式單元格的值 ?
  224. ?????*?@param?dataSheet?WritableSheet?:?工作表 ?
  225. ?????*?@param?col?int?:?列 ?
  226. ?????*?@param?row?int?:?行 ?
  227. ?????*?@param?startPos?int?:?開始位置 ?
  228. ?????*?@param?endPos?int?:?結束位置 ?
  229. ?????*?@param?format ?
  230. ?????*?@throws?RowsExceededException ?
  231. ?????*?@throws?WriteException ?
  232. ?????*/ ??
  233. ???? private ? void ?modiFormulaCell(WritableSheet?dataSheet,? int ?col,? int ?row,? int ?startPos,? int ?endPos,?CellFormat?format)? throws ?RowsExceededException,?WriteException ??
  234. ????{ ??
  235. ????????String?f?=?getFormula(col,?row,?startPos,?endPos); ??
  236. ???????? //?<SPAN?class=hilite2>插入公式</SPAN>(只支持插入,不支持修改) ??
  237. ????????WritableCell?cell?=?dataSheet.getWritableCell(col,?row); ??
  238. ???????? if ?(cell.getType()?==?CellType.EMPTY) ??
  239. ????????{???????????????????? ??
  240. ???????????? //?公式單元格 ??
  241. ????????????Formula?lbl?=? new ?Formula(col,?row,?f); ??
  242. ???????????? if ( null ?!=?format) ??
  243. ????????????{ ??
  244. ????????????????lbl.setCellFormat(format); ??
  245. ????????????}? else ??
  246. ????????????{ ??
  247. ????????????????lbl.setCellFormat(cell.getCellFormat()); ??
  248. ????????????} ??
  249. ????????????dataSheet.addCell(lbl); ??
  250. ????????}? else ? if ?(cell.getType()?==?CellType.STRING_FORMULA) ??
  251. ????????{ ??
  252. ????????????YTLogger.logWarn( "Formula?modify?not?supported!" ); ??
  253. ????????} ??
  254. ????} ??
  255. ???? ??
  256. ???? /** ?
  257. ?????*?得到公式 ?
  258. ?????*?@param?col?int?:?列 ?
  259. ?????*?@param?row?int?:?行 ?
  260. ?????*?@param?startPos?int?:?開始位置 ?
  261. ?????*?@param?endPos?int?:?結束位置 ?
  262. ?????*?@return?String ?
  263. ?????*?@throws?RowsExceededException ?
  264. ?????*?@throws?WriteException ?
  265. ?????*/ ??
  266. ???? private ?String?getFormula( int ?col,? int ?row,? int ?startPos,? int ?endPos) ??
  267. ???????????? throws ?RowsExceededException,?WriteException ??
  268. ????{ ??
  269. ???????? char ?base?=? 'A' ; ??
  270. ???????? char ?c1?=?base; ??
  271. ????????StringBuffer?formula?=? new ?StringBuffer( 128 ); ??
  272. ???????? //?組裝公式 ??
  273. ????????formula.append( "SUM(" ); ??
  274. ???????? if ?(col?<=? 25 ) ??
  275. ????????{ ??
  276. ????????????c1?=?( char )?(col?%? 26 ?+?base); ??
  277. ????????????formula.append(c1).append(startPos).append( ":" ) ??
  278. ???????????????????.append(c1).append(endPos).append( ")" ); ??
  279. ????????}? else ? if ?(col?>? 25 ) ??
  280. ????????{ ??
  281. ???????????? char ?c2?=?( char )?((col?-? 26 )?/? 26 ?+?base); ??
  282. ????????????c1?=?( char )?((col?-? 26 )?%? 26 ?+?base); ??
  283. ????????????formula.append(c2).append(c1).append(startPos).append( ":" ) ??
  284. ???????????????????.append(c2).append(c1).append(endPos).append( ")" ); ??
  285. ????????} ??
  286. ??
  287. ???????? return ?formula.toString(); ??
  288. ????} ??
  289. ???? ??
  290. ???? /** ?
  291. ?????*?插入圖表工作表 ?
  292. ?????*?@param?wwb?WritableWorkbook?:?工作簿 ?
  293. ?????*?@param?vecImg?Vector?:?圖像鏈表 ?
  294. ?????*?@throws?RowsExceededException ?
  295. ?????*?@throws?WriteException ?
  296. ?????*/ ??
  297. ???? private ? void ?insertImgsheet(WritableWorkbook?wwb,?Vector?vecImg) ??
  298. ???????????? throws ?RowsExceededException,?WriteException ??
  299. ????{ ??
  300. ???????? //?插入圖像 ??
  301. ????????WritableSheet?imgSheet; ??
  302. ???????? if ((wwb.getSheets()).length?<? 2 ) ??
  303. ????????{ ??
  304. ????????????imgSheet?=?wwb.createSheet( "圖表" ,? 1 ); ??
  305. ????????}? else ??
  306. ????????{ ??
  307. ????????????imgSheet?=?wwb.getSheet( 1 ); ??
  308. ????????} ??
  309. ???????? ??
  310. ???????? for ?( int ?i?=? 0 ;?i?<?vecImg.size();?i++) ??
  311. ????????{ ??
  312. ????????????ChartImg?chart?=?(ChartImg)?vecImg.get(i); ??
  313. ???????????? //?插入圖像標題 ??
  314. ????????????Label?lbl?=? new ?Label( 0 ,? 2 ?+? 20 ?*?i,?chart.getImgTitle()); ??
  315. ????????????WritableFont?font?=? new ?WritableFont(WritableFont.ARIAL, ??
  316. ????????????????????WritableFont.DEFAULT_POINT_SIZE,?WritableFont.NO_BOLD,? false , ??
  317. ????????????????????UnderlineStyle.NO_UNDERLINE,?Colour.DARK_BLUE2); ??
  318. ????????????WritableCellFormat?background?=? new ?WritableCellFormat(font); ??
  319. ????????????background.setWrap( true ); ??
  320. ????????????background.setBackground(Colour.GRAY_25); ??
  321. ????????????imgSheet.mergeCells( 0 ,? 2 ?+? 20 ?*?i,? 9 ,? 2 ?+? 20 ?*?i); ??
  322. ????????????lbl.setCellFormat(background); ??
  323. ????????????imgSheet.addCell(lbl); ??
  324. ???????????? //?插入圖像單元格 ??
  325. ????????????insertImgCell(imgSheet,? 2 ,? 4 ?+? 20 ?*?i,? 8 ,? 15 ,?chart.getImgName()); ??
  326. ????????} ??
  327. ????} ??
  328. ??
  329. ???? /** ?
  330. ?????*?插入圖像到單元格(圖像格式只支持png) ?
  331. ?????*?@param?dataSheet?WritableSheet?:?工作表 ?
  332. ?????*?@param?col?int?:?列 ?
  333. ?????*?@param?row?int?:?行 ?
  334. ?????*?@param?width?int?:?寬 ?
  335. ?????*?@param?height?int?:?高 ?
  336. ?????*?@param?imgName?String?:?圖像的全路徑 ?
  337. ?????*?@throws?RowsExceededException ?
  338. ?????*?@throws?WriteException ?
  339. ?????*/ ??
  340. ???? private ? void ?insertImgCell(WritableSheet?dataSheet,? int ?col,? int ?row,? int ?width, ??
  341. ???????????? int ?height,?String?imgName)? throws ?RowsExceededException,?WriteException ??
  342. ????{ ??
  343. ????????File?imgFile?=? new ?File(imgName); ??
  344. ????????WritableImage?img?=? new ?WritableImage(col,?row,?width,?height,?imgFile); ??
  345. ????????dataSheet.addImage(img); ??
  346. ????} ??
  347. ???? ??
  348. ???? /** ?
  349. ?????*?測試 ?
  350. ?????*?@param?args ?
  351. ?????*/ ??
  352. ???? public ? static ? void ?main(String[]?args) ??
  353. ????{ ??
  354. ????????XLSDemo?demo?=? new ?XLSDemo(); ??
  355. ????????demo.makeXls(); ??
  356. ????} ??
  357. }??

使用JXL讀取Excel表格,拷貝、更新Excel工作薄


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91视频导航 | 国产精品成熟老女人 | 综合网女女网 | 色婷婷在线播放 | 极品嫩模私拍后被潜在线观看 | 色噜噜狠狠大色综合 | 国产精品成人va在线观看入口 | 亚洲欧美天堂综合久久 | 在线观看网 | 初女破苞国语在线观看免费 | 欧美午夜在线 | 久久91 | 亚洲第一在线 | 99精品免费久久久久久久久日本 | 夜夜视频| 伊人成人在线观看 | 亚洲一二三四2021不卡 | 操操操日日日干干干 | 久久精品视频免费 | aaa在线观看 | 国产在线观看免费 | 亚洲综合色婷婷 | 国产小视频在线观看免费 | 五月婷婷在线观看视频 | 99久久久无码国产精品 | 高清激情小视频在线观看 | 婷婷久久激情啪啪 | 久久精品夜夜夜夜夜久久 | free-porn-ok| 成人人观看的免费毛片 | 黄色网在线播放 | 四虎影片| av网址在线播放 | 国产成人综合一区二区三区 | 色成人亚洲 | 欧美综合国产精品久久丁香 | 99riav视频一区二区 | 久久精品视频在线观看 | 亚洲精品在线视频观看 | 亚洲视频免费观看 | 神马久久久久久久久 |