最近老师布置了个任务,用Java对excel后缀名为xlsx的文件进行简单的增,删,改,查操作;虽说是个简单的程序,可作为刚接触的我来说还是有些磕磕碰碰。不过好在还是完成了,进行一个简单的总结。

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

XSSFSheet sheet=null;

XSSFWorkbook book=null;

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

public void print_excel(){

//获取excel表格的行数

int lastrownumber = sheet.getLastRowNum();

String ret=" ";

//获取数据

for(a=0;a

XSSFRow row=sheet.getRow(a);

//获取excel表格的列数

int lastcellnum=row.getLastCellNum();

for(b=0;b

XSSFCell cell =row.getCell(b);

//判断cell返回的类型并赋值给ret

ret=excel_operation.getExcelCellValue(cell);

System.out.print(ret+" ");

}

System.out.println();

}

}

二:改 (修改excel表格中某一单元格的内容)

public void set_excelcell(int i,int j,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表格中插入一行内容到指定位置)

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; //参考行的行号。

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 (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]);// 设置值

}

}

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

// 删除一行数据(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));

}

}

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

private static String getExcelCellValue(XSSFCell cell) {

String ret=" ";

try {

//当返回值的类型为空返回空格

if (cell == null) {

ret = " ";

//当返回值的类型为字符串类型

} else if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) {

ret = cell.getStringCellValue();

//当返回值的类型为数值类型

} else if (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {

ret = "" + cell.getNumericCellValue();

//当返回值的类型为表达式类型

} else if (cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA) {

ret = cell.getCellFormula();

//当返回值的类型为异常类型

} else if (cell.getCellType() == XSSFCell.CELL_TYPE_ERROR) {

ret = " " + cell.getErrorCellValue();

//当返回值的类型为布尔类型

} else if (cell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) {

ret = " " + cell.getBooleanCellValue();

//当返回值的类型为空的时候

} else if (cell.getCellType() == XSSFCell.CELL_TYPE_BLANK) {

ret = " ";

}

} catch (Exception ex) {

ex.printStackTrace();

ret = " ";

}

return ret;

}

java实现从excel中提取某行_Java实现操作excel表格相关推荐

  1. java实现从excel中提取某行_Java读取excel表格(原理+实现)

    一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office ...

  2. EXCEL中提取某行最后一个有效单元格数据

    用户的需求总是多种多样的,有的如同下图:大家可以看下图,只是举例,不一定合理.每个人所属的部门的级别不同,有的人属于公司之下,有的属于team之下,而大家可以看到这个表里面有很多空白单元格,看上去不是 ...

  3. java excel 删除行_使用Apache POI在Excel中删除多行

    我有一张包含75行表格的Excel表格 . 在第76行我有各列的总功能 =SUM(A1:A75) 和 =SUM(B1:B75) 在第77到第92位的行我有一个Excel图表这需要A1:A75和B1:为 ...

  4. excel中提取月份_在Excel中自动添加月份表

    excel中提取月份 Set up a Master sheet in your workbook, and add month sheets automatically, based on that ...

  5. 从Excel中提取数据

    从事android客户端开发的小伙伴们肯定都知道打点的痛苦,尤其是把点位从excel复制到java文件中,还要一个一个的修改,繁琐之极,所以想到了从excel中提取数据. 1.开发用的是android ...

  6. matlab提取数据的一部分,matlab处理excel数据【怎么用MATLAB从excel中提取部分数据】...

    已经把excel的一列导入到matlab的工作区,怎么计算这一列数的均值.标准差.最小值.最大值以及中位数? 把这个EXCEL放到matlab目录下的work里,假设名为1.xls,然后在matlab ...

  7. 如何在excel中提取教师 教不同多个班级的综合平均分 合格率

    在Excel中提取教师教多个班级的综合平均分和合格率,你可以这样做: 建立一个数据表,表格的第一列是教师的姓名,第二列是班级名称,其余列是学生的成绩. 使用Excel的IF语句,对学生成绩进行判断,确 ...

  8. 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...

  9. 怎样让表格的行高一样_excel表格多数据如何设置行高-Excel EXCEL中如何把行高平均成一样高...

    excel表格如何设置行高 1.本次操作的软件为Excel电格,软件版本为office和学生版2016. 2.首先打开Excel电子表格,根据问题描述,我们格中输入用于演示设置表格最合适的行高列宽的数 ...

最新文章

  1. 谷歌开源 TFGAN,让训练和评估 GAN 变得更加简单
  2. forall oracle 游标,FORALL用法小结
  3. [POJ2420]A Star not a Tree?(模拟退火)
  4. SAP Analytics Cloud和Cloud for Customer之间的Single Sign on配置
  5. anaconda中python的位置_科学网—查询Anaconda安装路径、安装包位置及授予访问权限 - 张伟的博文...
  6. 【华为云实战开发】8.如何快速搭建C#网站并实现持续集成?
  7. mysql 查询的关键词的执行顺序
  8. 质疑江民电脑保护系统,涉嫌抄袭
  9. OpenCV+Python学习笔记 : 图像灰度化处理
  10. 记一次hive 报错NoViableAltException(-1@[215:51: ( KW_AS )?])
  11. 【动态规划】流水作业调度问题与Johnson法则
  12. cat tee ||
  13. win32应用程序和win32控制台应用程序
  14. 微信拼手气红包背后的算法逻辑
  15. 微信公众号生成临时二维码
  16. 电锤、冲击钻和空心钻的使用方法
  17. 2021中国大学MOOC 机器学习(温州大学) 最新中国大学MOOC满分章节测试答案
  18. 4 int、str类型(数据类型1)、type()
  19. java StringBuilder追加换行符
  20. 一次关于前端的内存泄漏

热门文章

  1. 探姬环游世界JAVA
  2. Failed to get nestedarchive for entry BOOT-INF/lib/jackson
  3. 继360云盘后,又一云盘关闭:三星云宣布关闭个人云存储服务
  4. Canal使用入门学习
  5. python实现百度网盘创建文件夹与转存
  6. 技术专家主流认证_4认证专家交流可以帮助您赚钱
  7. adb命令怎么写成bat文件
  8. centos7学习笔记:开启虚拟机黑屏
  9. 学习用命令行编写HelloWorld
  10. 毁灭还是生存?业务连续性管理考验公司基业常青-系统体系风险防范