Java刪除Excel中的行和列
作者:Tina_Tang
Excel是日常工作中常用的辦公軟件之一。在制作表格的時(shí)候,有時(shí)需要在工作表中插入一個(gè)或多個(gè)行和列,同時(shí)也會(huì)遇到需要將工作表中多余的行或列刪除的情況。本文就將通過使用Java程序來演示如何刪除Excel中的行和列,主要包含了刪除指定的行和列、刪除空白的行和列,以及刪除含有關(guān)鍵字的行。
Excel是日常工作中常用的辦公軟件之一。在制作表格的時(shí)候,有時(shí)需要在工作表中插入一個(gè)或多個(gè)行和列,同時(shí)也會(huì)遇到需要將工作表中多余的行或列刪除的情況。本文就將通過使用Java程序來演示如何刪除Excel中的行和列,主要包含了刪除指定的行和列、刪除空白的行和列,以及刪除含有關(guān)鍵字的行。
使用工具:Free Spire.XLS for Java (免費(fèi)版)
Jar文件獲取及導(dǎo)入:
方法1:通過官方網(wǎng)站下載獲取jar包。解壓后將lib文件夾下的Spire.Xls.jar文件導(dǎo)入Java程序。(如下圖)
方法2:通過maven倉庫安裝導(dǎo)入。具體安裝詳解參見此網(wǎng)頁。
【示例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) {
- //創(chuàng)建一個(gè)Workbook類的對(duì)象,并加載測(cè)試文檔
- 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) {
- //創(chuàng)建一個(gè)Workbook類的對(duì)象,并加載測(cè)試文檔
- 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】刪除含有關(guān)鍵字的行
- import com.spire.xls.*;
- import java.util.ArrayList;
- import java.util.List;
- public class DeleteRowsByKeywords {
- public static void main(String[] args) {
- //創(chuàng)建一個(gè)Workbook類的對(duì)象,并加載測(cè)試文檔
- Workbook wb = new Workbook();
- wb.loadFromFile("D:\\Desktop\\Sample3.xlsx");
- //獲取工作表
- Worksheet sheet = wb.getWorksheets().get(0);
- //通過getRowList方法獲取含有關(guān)鍵字的列
- 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);
- }
- //創(chuàng)建getRowList方法獲取含有關(guān)鍵字的列數(shù)
- 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;
- }
- }
刪除效果:
責(zé)任編輯:華軒
來源:
segmentfault