首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

删除特定行Apache Poi

Apache Poi是一个用于操作Microsoft Office格式文件(如Word、Excel和PowerPoint)的Java库。它提供了一组API,使开发人员能够读取、写入和修改这些文件。

删除特定行是指在Excel文件中删除指定的行。使用Apache Poi可以轻松实现这一操作。下面是一个完整的示例代码,演示如何使用Apache Poi删除特定行:

代码语言:txt
复制
import org.apache.poi.ss.usermodel.*;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelUtils {

    public static void deleteRow(String filePath, String sheetName, int rowIndex) throws IOException {
        FileInputStream fis = new FileInputStream(filePath);
        Workbook workbook = WorkbookFactory.create(fis);
        Sheet sheet = workbook.getSheet(sheetName);

        if (sheet != null) {
            Row row = sheet.getRow(rowIndex);
            if (row != null) {
                sheet.removeRow(row);
                // 移动行,使删除的行不留空白
                int lastRowNum = sheet.getLastRowNum();
                if (rowIndex >= 0 && rowIndex < lastRowNum) {
                    sheet.shiftRows(rowIndex + 1, lastRowNum, -1);
                }
            }
        }

        fis.close();

        FileOutputStream fos = new FileOutputStream(filePath);
        workbook.write(fos);
        fos.close();
    }

    public static void main(String[] args) {
        try {
            String filePath = "path/to/your/excel/file.xlsx";
            String sheetName = "Sheet1";
            int rowIndex = 2; // 要删除的行索引,从0开始计数

            deleteRow(filePath, sheetName, rowIndex);
            System.out.println("删除行成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,我们首先通过FileInputStream读取Excel文件,然后使用WorkbookFactory创建一个Workbook对象。接下来,我们获取指定名称的工作表,并找到要删除的行。如果找到了该行,我们使用SheetremoveRow()方法删除它,并使用shiftRows()方法移动其他行,以填补删除行后的空白。

最后,我们使用FileOutputStream将修改后的Workbook对象写回到Excel文件中。

这是一个简单的示例,演示了如何使用Apache Poi删除特定行。根据实际需求,你可以根据Apache Poi的文档和API进一步扩展和优化代码。

推荐的腾讯云相关产品:腾讯云对象存储(COS),它是一种高可用、高可靠、低成本的云端存储服务,适用于存储和处理大规模非结构化数据。你可以使用腾讯云COS来存储和管理Excel文件。了解更多信息,请访问腾讯云COS的官方文档:腾讯云对象存储(COS)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • datatable删除

    1.如果只是想删除datatable中的一,可以用DataRow的delete,但是必须要删除后让DataTable知道,所以就要用到.AcceptChanges()方法,原因是这种删除只是标识性删除...2.彻底删除就要用到datatable的.Rows.Remove(DataRow dr)方法,同理也只是删除可以,如果要循环删除请继续往下看。   ...所以要从DataTable的下面往上查找删除,这样即使这行符合条件被删除了,上面的依旧不受影响。 说了这么多,不知道你明白了吗?...DataRow中主要包括一下几种信息:1、中每一列的当前值,2、中每一列的原始值,3、行状态,4、父与子行间的链接 初始化一个DataRow: DataTable dataTable=dataSet.Tables...DataRow newRow=dataTable.NewRow(); //用dataTable生成DataRow可以利用dataTable里面的模式 dataTable.Rows.Add(newRow); 删除

    2.7K40
    领券