乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      JAVA操作Excel文件

       昵稱10087950 2017-02-14

      JAVA EXCEL API:是一開放源碼項目,通過它Java開發(fā)人員可以讀取Excel文件的內(nèi)容、創(chuàng)建新的Excel文件、更新已經(jīng)存在的Excel文件。使用該API非Windows操作系統(tǒng)也可以通過純Java應(yīng)用來處理Excel數(shù)據(jù)表。因為它是使用Java編寫的,所以我們在Web應(yīng)用中可以通過JSP、Servlet來調(diào)用API實現(xiàn)對Excel數(shù)據(jù)表的訪問。

      下載:

      Java Excel API的jar包可以通過以下URL獲得:

      http:///projects/jexcelapi/files/jexcelapi/2.6.6/jexcelapi_2_6_6.zip/download

      (包括所有版本):http:///projects/jexcelapi/files/

      直接下載地址(迅雷上新建任務(wù)即可):

      http://nchc.dl./project/jexcelapi/jexcelapi/2.6.6/jexcelapi_2_6_6.zip 

      示例1:讀取本地Excel文件F:\紅樓人物.xls

      1.       新建Excel文件F:\紅樓人物.xls

      內(nèi)容如下:

      2.       Java通過jexcelapi包操作excel文件:

      1. //in ExcelOperater   
      2.   
      3. import java.io.File;   
      4.   
      5. import java.io.FileInputStream;   
      6.   
      7. import java.io.InputStream;   
      8.   
      9.     
      10.   
      11. import jxl.Cell;   
      12.   
      13. import jxl.CellType;   
      14.   
      15. import jxl.Sheet;   
      16.   
      17. import jxl.Workbook;   
      18.   
      19. import jxl.write.Label;   
      20.   
      21.     
      22.   
      23. public class ExcelOperater    
      24.   
      25. {   
      26.   
      27.     public static void main(String[] args)    
      28.   
      29.     {   
      30.   
      31.         jxl.Workbook readwb = null;   
      32.   
      33.         try    
      34.   
      35.         {   
      36.   
      37.             //構(gòu)建Workbook對象, 只讀Workbook對象   
      38.   
      39.             //直接從本地文件創(chuàng)建Workbook   
      40.   
      41.             InputStream instream = new FileInputStream("F:/紅樓人物.xls");   
      42.   
      43.             readwb = Workbook.getWorkbook(instream);   
      44.   
      45.     
      46.   
      47.             //Sheet的下標(biāo)是從0開始   
      48.   
      49.             //獲取第一張Sheet表   
      50.   
      51.             Sheet readsheet = readwb.getSheet(0);   
      52.   
      53.             //獲取Sheet表中所包含的總列數(shù)   
      54.   
      55.             int rsColumns = readsheet.getColumns();   
      56.   
      57.             //獲取Sheet表中所包含的總行數(shù)   
      58.   
      59.             int rsRows = readsheet.getRows();   
      60.   
      61.             //獲取指定單元格的對象引用   
      62.   
      63.             for (int i = 0; i < rsRows; i++)   
      64.   
      65.             {   
      66.   
      67.                 for (int j = 0; j < rsColumns; j++)   
      68.   
      69.                 {   
      70.   
      71.                     Cell cell = readsheet.getCell(j, i);   
      72.   
      73.                     System.out.print(cell.getContents() + " ");   
      74.   
      75.                 }   
      76.   
      77.                 System.out.println();   
      78.   
      79.             }   
      80.   
      81.                
      82.   
      83.             //利用已經(jīng)創(chuàng)建的Excel工作薄,創(chuàng)建新的可寫入的Excel工作薄   
      84.   
      85.             jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(   
      86.   
      87.                     "F:/紅樓人物1.xls"), readwb);   
      88.   
      89.             //讀取第一張工作表   
      90.   
      91.             jxl.write.WritableSheet ws = wwb.getSheet(0);   
      92.   
      93.             //獲得第一個單元格對象   
      94.   
      95.             jxl.write.WritableCell wc = ws.getWritableCell(0, 0);   
      96.   
      97.             //判斷單元格的類型, 做出相應(yīng)的轉(zhuǎn)化   
      98.   
      99.             if (wc.getType() == CellType.LABEL)    
      100.   
      101.             {   
      102.   
      103.                 Label l = (Label) wc;   
      104.   
      105.                 l.setString("新姓名");   
      106.   
      107.             }   
      108.   
      109.             //寫入Excel對象   
      110.   
      111.             wwb.write();   
      112.   
      113.             wwb.close();   
      114.   
      115.         } catch (Exception e) {   
      116.   
      117.             e.printStackTrace();   
      118.   
      119.         } finally {   
      120.   
      121.             readwb.close();   
      122.   
      123.         }   
      124.   
      125. }   
      126.   
      127. }   
      128.   

      3.       結(jié)果:

      ①     控制臺輸出:

      人物 等級 大觀園位置 金陵十二釵

      林黛玉 小姐 瀟湘館 正冊

      妙玉 世外 櫳翠庵 正冊

      晴雯 丫鬟 怡紅院 副冊

      香菱 妾 蘅蕪苑 又副冊

      ②     創(chuàng)建文件F:\紅樓人物1.xls

      4.       程序解析:

      所引用的包:

      ①     Workbook對象,需要jxl.Workbook包;

      ②     InputStream、FileInputStream對象:需要java.io.FileInputStream和java.io.InputStream包。

      ③     Sheet對象:jxl.Sheet包;注意excel中sheet表單的行列從0開始計數(shù)。

      ④     Cell對象:jxl.Cell包;對單元進(jìn)行處理

      ⑤     Label:選擇jxl.write.label包

      ⑥     WritableWorkbook、WritableSheet、WritableCelll對象

      實例二:3個功能-----從excel文件F:\紅樓人物.xls讀取數(shù)據(jù);生成新的excel文件F:\紅樓人物2.xls;修改原excel一個單元并輸出為F:\紅樓人物3.xls。

      原始文件:F:\紅樓人物.xls

      運行結(jié)果:

      ①     控制臺輸出:

      人物 等級 大觀園位置 金陵十二釵

      林黛玉 小姐 瀟湘館 正冊

      妙玉 世外 櫳翠庵 正冊

      晴雯 丫鬟 怡紅院 副冊

      香菱 妾 蘅蕪苑 又副冊

      ②     寫入輸出Excel文件:F:\紅樓人物2.xls

      ③     修改輸出文件 F:\紅樓人物3.xls (加修飾后輸出)

      示例程序:

      1. //in ExcelHandle   
      2.   
      3. import jxl.*;   
      4.   
      5. import jxl.format.UnderlineStyle;   
      6.   
      7. import jxl.write.*;   
      8.   
      9. import jxl.write.Number;   
      10.   
      11. import jxl.write.Boolean;   
      12.   
      13. import jxl.Cell;   
      14.   
      15.     
      16.   
      17. import java.io.*;   
      18.   
      19.     
      20.   
      21. public class ExcelHandle   
      22.   
      23. {   
      24.   
      25.     public ExcelHandle()   
      26.   
      27.     {   
      28.   
      29.     }   
      30.   
      31.     /***讀取Excel*/  
      32.   
      33.     public static void readExcel(String filePath)   
      34.   
      35.     {   
      36.   
      37.         try  
      38.   
      39.         {   
      40.   
      41.             InputStream is = new FileInputStream(filePath);   
      42.   
      43.             Workbook rwb = Workbook.getWorkbook(is);   
      44.   
      45.             //這里有兩種方法獲取sheet表:名字和下標(biāo)(從0開始)   
      46.   
      47.             //Sheet st = rwb.getSheet("original");   
      48.   
      49.             Sheet st = rwb.getSheet(0);   
      50.   
      51.             /**  
      52.  
      53.             //獲得第一行第一列單元的值  
      54.  
      55.             Cell c00 = st.getCell(0,0);  
      56.  
      57.             //通用的獲取cell值的方式,返回字符串  
      58.  
      59.             String strc00 = c00.getContents();  
      60.  
      61.             //獲得cell具體類型值的方式  
      62.  
      63.             if(c00.getType() == CellType.LABEL)  
      64.  
      65.             {  
      66.  
      67.                 LabelCell labelc00 = (LabelCell)c00;  
      68.  
      69.                 strc00 = labelc00.getString();  
      70.  
      71.             }  
      72.  
      73.             //輸出  
      74.  
      75.             System.out.println(strc00);*/  
      76.   
      77.             //Sheet的下標(biāo)是從0開始   
      78.   
      79.             //獲取第一張Sheet表   
      80.   
      81.             Sheet rst = rwb.getSheet(0);   
      82.   
      83.             //獲取Sheet表中所包含的總列數(shù)   
      84.   
      85.             int rsColumns = rst.getColumns();   
      86.   
      87.             //獲取Sheet表中所包含的總行數(shù)   
      88.   
      89.             int rsRows = rst.getRows();   
      90.   
      91.             //獲取指定單元格的對象引用   
      92.   
      93.             for (int i = 0; i < rsRows; i++)   
      94.   
      95.             {   
      96.   
      97.                 for (int j = 0; j < rsColumns; j++)   
      98.   
      99.                 {   
      100.   
      101.                     Cell cell = rst.getCell(j, i);   
      102.   
      103.                     System.out.print(cell.getContents() + " ");   
      104.   
      105.                 }   
      106.   
      107.                 System.out.println();   
      108.   
      109.             }             
      110.   
      111.             //關(guān)閉   
      112.   
      113.             rwb.close();   
      114.   
      115.         }   
      116.   
      117.         catch(Exception e)   
      118.   
      119.         {   
      120.   
      121.             e.printStackTrace();   
      122.   
      123.         }   
      124.   
      125.     }   
      126.   
      127.     /**輸出Excel*/  
      128.   
      129.     public static void writeExcel(OutputStream os)   
      130.   
      131.     {   
      132.   
      133.         try  
      134.   
      135.         {   
      136.   
      137.    /** 只能通過API提供的 工廠方法來創(chuàng)建Workbook,而不能使用WritableWorkbook的構(gòu)造函數(shù),因為類WritableWorkbook的構(gòu)造函數(shù)為 protected類型:方法一:直接從目標(biāo)文件中讀取 WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));方法 二:如下實例所示 將WritableWorkbook直接寫入到輸出流*/  
      138.   
      139.             WritableWorkbook wwb = Workbook.createWorkbook(os);   
      140.   
      141.             //創(chuàng)建Excel工作表 指定名稱和位置   
      142.   
      143.             WritableSheet ws = wwb.createSheet("Test Sheet 1",0);   
      144.   
      145.             /**************往工作表中添加數(shù)據(jù)*****************/  
      146.   
      147.             //1.添加Label對象   
      148.   
      149.             Label label = new Label(0,0,"測試");   
      150.   
      151.             ws.addCell(label);   
      152.   
      153.             //添加帶有字型Formatting對象   
      154.   
      155.             WritableFont wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);   
      156.   
      157.             WritableCellFormat wcf = new WritableCellFormat(wf);   
      158.   
      159.             Label labelcf = new Label(1,0,"this is a label test",wcf);   
      160.   
      161.             ws.addCell(labelcf);   
      162.   
      163.             //添加帶有字體顏色的Formatting對象   
      164.   
      165.             WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,   
      166.   
      167.                     UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.DARK_YELLOW);   
      168.   
      169.             WritableCellFormat wcfFC = new WritableCellFormat(wfc);   
      170.   
      171.             Label labelCF = new Label(1,0,"Ok",wcfFC);   
      172.   
      173.             ws.addCell(labelCF);   
      174.   
      175.               
      176.   
      177.             //2.添加Number對象   
      178.   
      179.             Number labelN = new Number(0,1,3.1415926);   
      180.   
      181.             ws.addCell(labelN);   
      182.   
      183.             //添加帶有formatting的Number對象   
      184.   
      185.             NumberFormat nf = new NumberFormat("#.##");   
      186.   
      187.             WritableCellFormat wcfN = new WritableCellFormat(nf);   
      188.   
      189.             Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);   
      190.   
      191.             ws.addCell(labelNF);   
      192.   
      193.                
      194.   
      195.             //3.添加Boolean對象   
      196.   
      197.             Boolean labelB = new jxl.write.Boolean(0,2,true);   
      198.   
      199.             ws.addCell(labelB);   
      200.   
      201.             Boolean labelB1 = new jxl.write.Boolean(1,2,false);   
      202.   
      203.             ws.addCell(labelB1);             
      204.   
      205.             //4.添加DateTime對象   
      206.   
      207.             jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());   
      208.   
      209.             ws.addCell(labelDT);   
      210.   
      211.               
      212.   
      213.             //5.添加帶有formatting的DateFormat對象   
      214.   
      215.             DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");   
      216.   
      217.             WritableCellFormat wcfDF = new WritableCellFormat(df);   
      218.   
      219.             DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);   
      220.   
      221.             ws.addCell(labelDTF);   
      222.   
      223.             //6.添加圖片對象,jxl只支持png格式圖片   
      224.   
      225.             File image = new File("f:\\1.png");   
      226.   
      227.             WritableImage wimage = new WritableImage(0,4,6,17,image);   
      228.   
      229.             ws.addImage(wimage);   
      230.   
      231.             //7.寫入工作表   
      232.   
      233.             wwb.write();   
      234.   
      235.             wwb.close();   
      236.   
      237.         }   
      238.   
      239.         catch(Exception e)   
      240.   
      241.         {   
      242.   
      243.             e.printStackTrace();   
      244.   
      245.         }   
      246.   
      247.     }   
      248.   
      249.     /** 將file1拷貝后,進(jìn)行修改并創(chuàng)建輸出對象file2  
      250.  
      251.      * 單元格原有的格式化修飾不能去掉,但仍可將新的單元格修飾加上去,  
      252.  
      253.      * 以使單元格的內(nèi)容以不同的形式表現(xiàn)  
      254.  
      255.      */  
      256.   
      257.     public static void modifyExcel(File file1,File file2)   
      258.   
      259.     {   
      260.   
      261.         try  
      262.   
      263.         {   
      264.   
      265.             Workbook rwb = Workbook.getWorkbook(file1);   
      266.   
      267.             WritableWorkbook wwb = Workbook.createWorkbook(file2,rwb);//copy   
      268.   
      269.             WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,   
      270.   
      271.                     UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLUE);   
      272.   
      273.             WritableCellFormat wcfFC = new WritableCellFormat(wfc);    
      274.   
      275.             WritableSheet ws = wwb.getSheet(0);   
      276.   
      277.             WritableCell wc = ws.getWritableCell(0,0);   
      278.   
      279.             //判斷單元格的類型,做出相應(yīng)的轉(zhuǎn)換   
      280.   
      281.             if(wc.getType() == CellType.LABEL)   
      282.   
      283.             {   
      284.   
      285.                 Label labelCF =new Label(0,0,"人物(新)",wcfFC);   
      286.   
      287.                 ws.addCell(labelCF);     
      288.   
      289.               //Label label = (Label)wc;   
      290.   
      291.               //label.setString("被修改");   
      292.   
      293.             }   
      294.   
      295.           wwb.write();   
      296.   
      297.             wwb.close();   
      298.   
      299.             rwb.close();   
      300.   
      301.         }   
      302.   
      303.         catch(Exception e)   
      304.   
      305.         {   
      306.   
      307.             e.printStackTrace();   
      308.   
      309.         }   
      310.   
      311.     }   
      312.   
      313.     //測試   
      314.   
      315.     public static void main(String args[])   
      316.   
      317.     {   
      318.   
      319.         try  
      320.   
      321.         {   
      322.   
      323.             //讀EXCEL   
      324.   
      325.         ExcelHandle.readExcel("F:/紅樓人物.xls");   
      326.   
      327.             //輸出EXCEL   
      328.   
      329.         File filewrite=new File("F:/紅樓人物2.xls");   
      330.   
      331.         filewrite.createNewFile();   
      332.   
      333.         OutputStream os=new FileOutputStream(filewrite);   
      334.   
      335.         ExcelHandle.writeExcel(os);   
      336.   
      337.             //修改EXCEL   
      338.   
      339.         ExcelHandle.modifyExcel(new File("F:/紅樓人物.xls"), new File("F:/紅樓人物3.xls"));   
      340.   
      341.         }   
      342.   
      343.         catch(Exception e)   
      344.   
      345.         {   
      346.   
      347.         e.printStackTrace();   
      348.   
      349.         }   
      350.   
      351.     }   
      352.   
      353. }   
      354.   

      附:

      調(diào)用流程如下:

      1.打開工作文件Workbook,在此之前先用java的io流創(chuàng)建或者讀取文件
      2.打開工作表Sheet
      3.讀行,然后讀列。注意,行和列是從零開始的
      4.取得數(shù)據(jù)進(jìn)行操作
       

      來自網(wǎng)絡(luò)à讀取Excel數(shù)據(jù)表

      第一步:創(chuàng)建Workbook(術(shù)語:工作薄)

      2種方法:Workbook,就可以通過它來訪問Excel Sheet(術(shù)語:工作表):

      1. //從輸入流創(chuàng)建Workbook讀取excel數(shù)據(jù)表   
      2.   
      3.     InputStream is = new FileInputStream(sourcefile);   
      4.   
      5.     jxl.Workbook workbook = Workbook.getWorkbook(is);   
      6.   
      7. //直接從本地文件(.xls)創(chuàng)建Workbook   
      8.   
      9. Workbook workbook = Workbook.getWorkbook(new File(excelfile));   

      一旦創(chuàng)建了

      第二步:訪問sheet。

      2種方法:通過sheet的名稱;或者通過下標(biāo),下標(biāo)從0開始。

      1. //獲取第一張Sheet表   
      2.   
      3. Sheet rs = workbook.getSheet(0);   
      4.   
      5. 一旦得到了Sheet,就可以通過它來訪問Excel Cell(術(shù)語:單元格)。   
      6.   
      7. 第三步:訪問單元格cell   
      8.   
      9. //獲取第一行,第一列的值   
      10.   
      11. Cell c00 = rs.getCell(0, 0);   
      12.   
      13. String strc00 = c00.getContents();   
      14.   
      15. //獲取第一行,第二列的值   
      16.   
      17. Cell c10 = rs.getCell(1, 0);   
      18.   
      19. String strc10 = c10.getContents();   
      20.   
      21. //獲取第二行,第二列的值   
      22.   
      23. Cell c11 = rs.getCell(1, 1);   
      24.   
      25. String strc11 = c11.getContents();   
      26.   
      27.     
      28.   
      29. System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());   
      30.   
      31. System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());   
      32.   
      33. System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());   
      34.   

      第四步:操作數(shù)據(jù)

      如果僅僅是取得Cell的 值,我們可以方便地通過getContents()方法,它可以將任何類型的Cell值都作為一個字符串返回。如果有需要知道Cell內(nèi)容的確切類型,API也提供了一系列的方法:

      1. String strc00 = null;   
      2.   
      3. double strc10 = 0.00;   
      4.   
      5. Date strc11 = null;   
      6.   
      7. Cell c00 = rs.getCell(0, 0);   
      8.   
      9. Cell c10 = rs.getCell(1, 0);   
      10.   
      11. Cell c11 = rs.getCell(1, 1);   
      12.   
      13. if(c00.getType() == CellType.LABEL)   
      14.   
      15. {   
      16.   
      17. LabelCell labelc00 = (LabelCell)c00;   
      18.   
      19. strc00 = labelc00.getString();   
      20.   
      21. }   
      22.   
      23. if(c10.getType() == CellType.NUMBER)   
      24.   
      25. {   
      26.   
      27. NmberCell numc10 = (NumberCell)c10;   
      28.   
      29. strc10 = numc10.getValue();   
      30.   
      31. }   
      32.   
      33. if(c11.getType() == CellType.DATE)   
      34.   
      35. {   
      36.   
      37. DateCell datec11 = (DateCell)c11;   
      38.   
      39. strc11 = datec11.getDate();   
      40.   
      41. }   
      42.   
      43.     
      44.   
      45. System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());   
      46.   
      47. System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());   
      48.   
      49. System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());   
      50.   

      在得到

      循環(huán)取出全部數(shù)據(jù),并轉(zhuǎn)化為相應(yīng)格式:

      1. int rows = sheet.getRows();   
      2.   
      3. for (int i = 1; i < rows; i++) {   
      4.   
      5.     Cell cb1 = sheet.getCell(0, i);   
      6.   
      7.     Cell cb2 = sheet.getCell(1, i);   
      8.   
      9.     Cell num3 = sheet.getCell(2, i);   
      10.   
      11.     Cell num4 = sheet.getCell(3, i);   
      12.   
      13.     
      14.   
      15.     String user = "";   
      16.   
      17.     String rule = "";   
      18.   
      19.     int numNew = 0;   
      20.   
      21.     int numEdit = 0;   
      22.   
      23.     if (cb1.getType() == CellType.LABEL) {   
      24.   
      25.          LabelCell lc = (LabelCell) cb1;   
      26.   
      27.          user = lc.getString();   
      28.   
      29.     }   
      30.   
      31.     if (cb2.getType() == CellType.LABEL) {   
      32.   
      33.          LabelCell lc = (LabelCell) cb2;   
      34.   
      35.     rule = lc.getString();   
      36.   
      37.     }   
      38.   
      39.     if (num3.getType() == CellType.NUMBER_FORMULA) {   
      40.   
      41.          NumberFormulaCell nc = (NumberFormulaCell) num3;   
      42.   
      43.          try {   
      44.   
      45.              numNew = Double.valueOf(nc.getFormula()).intValue();   
      46.   
      47.          } catch (FormulaException e) {   
      48.   
      49.              e.printStackTrace();   
      50.   
      51.          }   
      52.   
      53.     }   
      54.   
      55.     if (num4.getType() == CellType.NUMBER_FORMULA) {   
      56.   
      57.          NumberFormulaCell nc = (NumberFormulaCell) num4;   
      58.   
      59.          try {   
      60.   
      61.              numEdit = Double.valueOf(nc.getFormula()).intValue();   
      62.   
      63.          } catch (FormulaException e) {   
      64.   
      65.              e.printStackTrace();   
      66.   
      67.          }   
      68.   
      69.     }   
      70.   
      71. }   
      72.   

      第五步:關(guān)閉對象,釋放內(nèi)存。

      完成對Excel電子表格數(shù)據(jù)的處理后,一定要使用close()方法來關(guān)閉先前創(chuàng)建的對象,以釋放讀取數(shù)據(jù)表的過程中所占用的內(nèi)存空間,在讀取大量數(shù)據(jù)時顯得尤為重要。

      Cell對象后,通過 getType()方法可以獲得該單元格的類型,然后與API提供的基本類型相匹配,強(qiáng)制轉(zhuǎn)換成相應(yīng)的類型,最后調(diào)用相應(yīng)的取值方法getXXX(),就可以得到確定類型的值。

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多