国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Java操作excel表格

2019-11-14 15:30:00
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  最近老師布置了個(gè)任務(wù),用java對(duì)Excel后綴名為xlsx的文件進(jìn)行簡(jiǎn)單的增,刪,改,查操作;雖說(shuō)是個(gè)簡(jiǎn)單的程序,可作為剛接觸的我來(lái)說(shuō)還是有些磕磕碰碰。不過(guò)好在還是完成了,進(jìn)行一個(gè)簡(jiǎn)單的總結(jié)。

  首先導(dǎo)入了一個(gè)poi.jar 網(wǎng)上有很多這個(gè)資源可以下載

XSSFSheet sheet=null;
XSSFWorkbook book=null;

一:查  (查找本地指定位置的excel表格,在控制臺(tái)輸出) 

public void PRint_excel(){

  //獲取excel表格的行數(shù)
  int lastrownumber = sheet.getLastRowNum();
  String ret=" ";
  //獲取數(shù)據(jù)
  for(a=0;a<lastrownumber;a++){
    XSSFRow row=sheet.getRow(a);
    //獲取excel表格的列數(shù)
    int lastcellnum=row.getLastCellNum();
    for(b=0;b<lastcellnum;b++){

      XSSFCell cell =row.getCell(b);

      //判斷cell返回的類型并賦值給ret
      ret=excel_Operation.getExcelCellValue(cell);
      System.out.print(ret+" ");
    }
  System.out.println();
  } 
}

二:改 (修改excel表格中某一單元格的內(nèi)容)

public void set_excelcell(int i,int j,String str){
  //獲取行的信息
  XSSFRow row=sheet.getRow(i-1);
  //獲取列的信息
  XSSFCell cell =row.getCell(j-1);
  //獲取被修改單元格的內(nèi)容
  String string = excel_operation.getExcelCellValue(cell);
  //修改單元格的內(nèi)容為str
  cell.setCellValue(str);
  System.out.println("已將"+string+"改為"+str);
}

三:增 (在excel表格中插入一行內(nèi)容到指定位置)

  

public  void insert(int rowIndex, String[] objs) { 
  if(rowIndex == 0) { 
    throw new IllegalArgumentException("不能插在第0行,第0行是用來(lái)定義的!"); 
  } 
  if(rowIndex > sheet.getLastRowNum() + 1) { 
    throw new IllegalArgumentException("最多只能插入在最后一行的后面。"); 
  } 
  int referRowIndex = -1; //參考行的行號(hào)。 
  if(sheet.getPhysicalNumberOfRows() <= 1) { 

    referRowIndex = rowIndex - 1; 
  } else { 
    referRowIndex = rowIndex - 1; 
  if(rowIndex == sheet.getLastRowNum() + 1) { //是插入最后一行 
    //不做任何處理 
  } else { 

    //往下移動(dòng)一位 
    sheet.shiftRows(rowIndex, sheet.getLastRowNum(), 1, true, false); 
    } 
  } 
  Row targetRow = sheet.createRow(rowIndex); 
  Row referRow = sheet.getRow(referRowIndex); // 參考行 
  Cell targetCell, referCell; 

  for (int i = 0; i < objs.length; i++) { 
  targetCell = targetRow.createCell(i); 
  referCell = referRow.getCell(i); 

  targetCell.setCellStyle(referCell.getCellStyle()); 
  targetCell.setCellType(referCell.getCellType()); 

  targetCell.setCellValue(objs[i]);// 設(shè)置值 
  } 
}

四: 刪 (刪除指定行的內(nèi)容)

// 刪除一行數(shù)據(jù)(Excel表中,行是從0起算的) 
  public  void delete(int rowIndex) {

  //刪除的是最后一行  
  if(rowIndex == sheet.getLastRowNum()) { 
    sheet.removeRow(sheet.getRow(sheet.getLastRowNum()));

  //刪除的不是最后一行  
  } else { 
    sheet.shiftRows(rowIndex + 1, sheet.getLastRowNum(), -1, true, false); 
    sheet.removeRow(sheet.getRow(sheet.getLastRowNum() + 1)); 
  } 
}

 

五: 判斷返回類型  (因?yàn)閑xcel表格中的內(nèi)容不同,有字符型的,有整數(shù)型的等等,必須進(jìn)行判斷其類型才能進(jìn)行輸出)

private static String getExcelCellValue(XSSFCell cell) {
  String ret=" ";
  try {
    //當(dāng)返回值的類型為空返回空格
    if (cell == null) {
      ret = " "; 
    //當(dāng)返回值的類型為字符串類型
    } else if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) {
      ret = cell.getStringCellValue();

    //當(dāng)返回值的類型為數(shù)值類型 
    } else if (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {
      ret = "" + cell.getNumericCellValue();

    //當(dāng)返回值的類型為表達(dá)式類型
    } else if (cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA) {
      ret = cell.getCellFormula();

    //當(dāng)返回值的類型為異常類型
    } else if (cell.getCellType() == XSSFCell.CELL_TYPE_ERROR) {
      ret = " " + cell.getErrorCellValue();

    //當(dāng)返回值的類型為布爾類型
     } else if (cell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) {
      ret = " " + cell.getBooleanCellValue();

    //當(dāng)返回值的類型為空的時(shí)候
    } else if (cell.getCellType() == XSSFCell.CELL_TYPE_BLANK) {
    ret = " ";
    }
  } catch (Exception ex) {
    ex.printStackTrace();
  ret = " ";
  }
  return ret;
}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 庆云县| 汤阴县| 渑池县| 南郑县| 瑞昌市| 望江县| 临泉县| 渭源县| 府谷县| 社会| 渑池县| 忻城县| 通山县| 荔波县| 安康市| 兴山县| 泰来县| 九江市| 沈阳市| 高阳县| 亚东县| 舞阳县| 杂多县| 莱芜市| 文成县| 永和县| 永新县| 土默特右旗| 西吉县| 镶黄旗| 醴陵市| 盐山县| 汤原县| 平定县| 高邑县| 碌曲县| 云阳县| 岳西县| 平武县| 阜新市| 涟源市|