簡體   English   中英

使用 Java 刪除 excel.xlsx 中的一行

[英]Delete a row in excel .xlsx using Java

我正在嘗試使用 java 刪除 excel 表中的一行。

但是我的代碼沒有刪除任何東西。

這是我刪除最后一行的代碼。

import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.Sheet;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException {
        final String filepath = "data-DB.xlsx";
        File workbookFile = new File(filepath);
        FileInputStream in = new FileInputStream(workbookFile);
        Workbook database = WorkbookFactory.create(in);
        Sheet sheet = database.getSheet("Users");
        int lastRow = sheet.getLastRowNum();
        Row row = sheet.getRow(lastRow);
        sheet.removeRow(row);
    }
}

這一行應該得到該行

Row row = sheet.getRow(lastRow);

這應該刪除該行。

sheet.removeRow(row);

我究竟做錯了什么?

getLastRowNum的文檔說:

獲取工作表上的最后一行 注意:之前有內容並稍后設置為空的行可能仍會被 Excel 和 Apache POI 計為行,因此此方法的結果將包括此類行,因此返回值可能更高超出預期!

所以很可能你會得到一個已經為空的行號,並且你正在嘗試刪除它,並且你看到removeRow不起作用。 打印或調試lastRow的值以修復錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM