Java删除Excel中的行和列

发表于:2020-2-18 09:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Tina_Tang    来源:segmentfault|

#
java
#
Java
  Excel是日常工作中常用的办公软件之一。在制作表格的时候,有时需要在工作表中插入一个或多个行和列,同时也会遇到需要将工作表中多余的行或列删除的情况。本文就将通过使用Java程序来演示如何删除Excel中的行和列,主要包含了删除指定的行和列、删除空白的行和列,以及删除含有关键字的行。
  使用工具:Free Spire.XLS for Java (免费版)
  Jar文件获取及导入:
  方法1:通过官方网站下载获取jar包。解压后将lib文件夹下的Spire.Xls.jar文件导入Java程序。(如下图)
  方法2:通过maven仓库安装导入。具体安装详解参见此网页。
  【示例1】删除指定的行和列
   import com.spire.xls.ExcelVersion;
  import com.spire.xls.Workbook;
  import com.spire.xls.Worksheet;
  public class DeleteSpecificRowsAndColumns {
  public static void main(String[] args) {
  //创建一个Workbook类的对象,并加载测试文档
  Workbook wb = new Workbook();
  wb.loadFromFile("D:\\Desktop\\Sample.xlsx");
  //获取工作表
  Worksheet sheet = wb.getWorksheets().get(0);
  //通过索引删除指定的行
  sheet.deleteRow(4);
  //通过索引删除指定的列
  sheet.deleteColumn(5);
  //保存文档
  wb.saveToFile("output/DeleteSpecificRowsAndColumns.xlsx", ExcelVersion.Version2016);
  }
  }
  删除效果:
  【示例2】删除空白的行和列
   import com.spire.xls.ExcelVersion;
  import com.spire.xls.Workbook;
  import com.spire.xls.Worksheet;
  public class DeleteBlankRowsAndColumns {
  public static void main(String[] args) {
  //创建一个Workbook类的对象,并加载测试文档
  Workbook wb = new Workbook();
  wb.loadFromFile("D:\\Desktop\\Sample2.xlsx");
  //获取工作表
  Worksheet sheet = wb.getWorksheets().get(0);
  //遍历所有列
  for (int i = sheet.getLastRow(); i >= 1; i--)
  {
  //删除空白列
  if (sheet.getRows()[i-1].isBlank())
  {
  //移除空白列
  sheet.deleteRow(i);
  }
  }
  //遍历所有行
  for (int j = sheet.getLastColumn(); j >= 1; j--)
  {
  //删除空白行
  if (sheet.getColumns()[j-1].isBlank())
  {
  //移除空白行
  sheet.deleteColumn(j);
  }
  }
  //保存文档
  wb.saveToFile("output/DeleteBlankRowsAndColumns.xlsx", ExcelVersion.Version2016);
  }
  }
  删除效果:
  【示例3】删除含有关键字的行
   import com.spire.xls.*;
  import java.util.ArrayList;
  import java.util.List;
  public class DeleteRowsByKeywords {
  public static void main(String[] args) {
  //创建一个Workbook类的对象,并加载测试文档
  Workbook wb = new Workbook();
  wb.loadFromFile("D:\\Desktop\\Sample3.xlsx");
  //获取工作表
  Worksheet sheet = wb.getWorksheets().get(0);
  //通过getRowList方法获取含有关键字的列
  List<Integer> list = getRowList(sheet,"你好,世界!");
  //遍历所有工作表
  for (int i = 0; i < list.size(); i++) {
  //删除特定列
  sheet.deleteRow(list.get(i));
  }
  //保存文档
  wb.saveToFile("output/DeleteRowsByKeywords.xlsx",ExcelVersion.Version2016);
  }
  //创建getRowList方法获取含有关键字的列数
  static List<Integer> getRowList(Worksheet sheet, String keyword) {
  int rowNum;
  List<Integer> rowList = new ArrayList<>();
  for (int i = sheet.getLastRow(); i >= 1; i--) {
  rowNum = i;
  for (int j = sheet.getLastColumn(); j >= 1; j--) {
  if (sheet.get(i, j).getText().contains(keyword)) {
  rowList.add(rowNum);
  break;
  }
  }
  }
  return rowList;
  }
  }
  删除效果:

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号