Java实现操作excel表格(基于poi.jar)

来源:互联网 发布:linux挂载samba共享 编辑:程序博客网 时间:2024/05/19 06:50

首先导入了一个poi.jar 网上有很多这个资源可以下载

XSSFSheet sheet=null;
XSSFWorkbook book=null;

一:查  (查找本地指定位置的excel表格,在控制台输出) 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
publicvoid print_excel(){
 
  //获取excel表格的行数
  intlastrownumber = sheet.getLastRowNum();
  String ret=" ";
  //获取数据
  for(a=0;a<lastrownumber;a++){
    XSSFRow row=sheet.getRow(a);
    //获取excel表格的列数
    intlastcellnum=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表格中某一单元格的内容)

?
1
2
3
4
5
6
7
8
9
10
11
publicvoid set_excelcell(inti,intj,String str){
  //获取行的信息
  XSSFRow row=sheet.getRow(i-1);
  //获取列的信息
  XSSFCell cell =row.getCell(j-1);
  //获取被修改单元格的内容
  String string = excel_operation.getExcelCellValue(cell);
  //修改单元格的内容为str
  cell.setCellValue(str);
  System.out.println("已将"+string+"改为"+str);
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
publicvoid insert(introwIndex, String[] objs) {
  if(rowIndex == 0) {
    thrownew IllegalArgumentException("不能插在第0行,第0行是用来定义的!");
  }
  if(rowIndex > sheet.getLastRowNum() + 1) {
    thrownew IllegalArgumentException("最多只能插入在最后一行的后面。");
  }
  intreferRowIndex = -1;//参考行的行号。
  if(sheet.getPhysicalNumberOfRows() <= 1) {
 
    referRowIndex = rowIndex - 1;
  }else{
    referRowIndex = rowIndex - 1;
  if(rowIndex == sheet.getLastRowNum() + 1) { //是插入最后一行
    //不做任何处理
  }else{
 
    //往下移动一位
    sheet.shiftRows(rowIndex, sheet.getLastRowNum(), 1,true,false);
    }
  }
  Row targetRow = sheet.createRow(rowIndex);
  Row referRow = sheet.getRow(referRowIndex); // 参考行
  Cell targetCell, referCell;
 
  for(inti = 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]);// 设置值
  }
}

四: 删 (删除指定行的内容)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
// 删除一行数据(Excel表中,行是从0起算的)
  publicvoid delete(introwIndex) {
 
  //删除的是最后一行
  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));
  }
}

五: 判断返回类型  (因为excel表格中的内容不同,有字符型的,有整数型的等等,必须进行判断其类型才能进行输出)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
privatestatic String getExcelCellValue(XSSFCell cell) {
  String ret=" ";
  try{
    //当返回值的类型为空返回空格
    if(cell == null) {
      ret = " ";
    //当返回值的类型为字符串类型
    }elseif (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) {
      ret = cell.getStringCellValue();
 
    //当返回值的类型为数值类型
    }elseif (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {
      ret = ""+ cell.getNumericCellValue();
 
    //当返回值的类型为表达式类型
    }elseif (cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA) {
      ret = cell.getCellFormula();
 
    //当返回值的类型为异常类型
    }elseif (cell.getCellType() == XSSFCell.CELL_TYPE_ERROR) {
      ret = " " + cell.getErrorCellValue();
 
    //当返回值的类型为布尔类型
     }elseif (cell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) {
      ret = " " + cell.getBooleanCellValue();
 
    //当返回值的类型为空的时候
    }elseif (cell.getCellType() == XSSFCell.CELL_TYPE_BLANK) {
    ret = " ";
    }
  }catch(Exception ex) {
    ex.printStackTrace();
  ret = " ";
  }
  returnret;
}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在微信上买的衣服不给退货怎么办 贴贴纸的地方出现色差了怎么办 贴在玻璃上的贴纸撕掉后有胶怎么办 魅族手机部分时间上划失效怎么办 别人电脑上c盘文件无权访问怎么办 网络已连接但上不了网怎么办 asp复选框选中的有重复值怎么办 邮件在邮递中出现损坏怎么办呢? 爱彩彩票资金密码忘记了怎么办 注册彩票网站忘了资金密码怎么办 电车电瓶加水后电压变低怎么办 电动车电瓶四块电池坏了一块怎么办 把小孩的玩具修坏了怎么办 电动车插头太紧了插不到底怎么办 宜家沙发不能更换布套怎么办 苹果官网买的无线充坏了怎么办 苹果官网上买的耳机坏了怎么办 led灯开关关掉了闪烁是怎么办 我朋友借的网贷光给我打电话怎么办 电脑上的文件变成了图片查看怎么办 外卖店打印机纸卡住打不开了怎么办 微信撤回图片留下一堆代码怎么办 拼多多砍价免费拿砍不到0元怎么办 一岁三个月宝宝老足拉肚子怎么办丶 想打好关系送礼发红包不敢收怎么办 我在相亲市场太受欢迎了怎么办小说 有人报警说我诈骗警察说立案怎么办 微信账号长时间未登录不想要怎么办 手机号注销了百度云登录不了怎么办 申请百度云账号的手机不用了怎么办 新注册的微信号显示账号异常怎么办 注册公众号说邮箱被占用了怎么办 向钱贷登录手机号换了怎么办 qq号绑定的手机号码换了怎么办 用手机号注册的支付宝换号了怎么办 支付宝转的账户手机号消号了怎么办 激活微信账号手机号写错了怎么办 大学试卷没有写名字和考号怎么办 公司被注销了公众号还想要怎么办 公司认证的公众号公司注销了怎么办 信而富注册手机号码不用了怎么办