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

首頁 > 編程 > Java > 正文

Java實(shí)現(xiàn)操作excel表格

2019-11-26 14:56:25
字體:
供稿:網(wǎng)友

  最近老師布置了個(gè)任務(wù),用Java對(duì)excel后綴名為xlsx的文件進(jìn)行簡單的增,刪,改,查操作;雖說是個(gè)簡單的程序,可作為剛接觸的我來說還是有些磕磕碰碰。不過好在還是完成了,進(jìn)行一個(gè)簡單的總結(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行是用來定義的!");   }   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ā)表
主站蜘蛛池模板: 辽宁省| 南城县| 库尔勒市| 许昌县| 大连市| 唐海县| 汕头市| 奉贤区| 区。| 武安市| 额敏县| 商河县| 景泰县| 枣庄市| 滁州市| 长海县| 浮山县| 定结县| 兰西县| 巧家县| 石狮市| 盐边县| 石城县| 新余市| 凯里市| 涟源市| 台江县| 云阳县| 碌曲县| 黎城县| 财经| 长子县| 鹿泉市| 仁怀市| 都昌县| 扶风县| 庆城县| 绥阳县| 潼南县| 古丈县| 全州县|