`
星海孤舟
  • 浏览: 69020 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

(转)poi删除行内容以及直接删除行

 
阅读更多

(原标题)使用poi进行excel基础操作的一些体会 part 1

 

 

最近写了个使用poi合并单元格的小程序。由于是首次使用poi,因此在操作时遇到了种种小麻烦,也因此进行了一些总结

1、删除

一般情况下,删除行时会面临两种情况:删除行内容但保留行位置、整行删除删除后下方单元格上移)。对应的删除方法分别是:removeRow()及shiftRow(startRow,endRow,shiftCount)

示例代码:

以下代码是使用removeRow()方法删除行内容但保留行位置。代码从d:\test.xls中的第一个sheet中删除了第一行。需要注意的是,改变是需要在workbook.write之后才生效的。

import org.apache.poi.hssf.usermodel.*;

import java.io.*;

public class testTools{

     public static void main(String[] args){

        try {

            FileInputStream is = new FileInputStream("d://test.xls");

            HSSFWorkbook workbook = new HSSFWorkbook(is);

            HSSFSheet sheet = workbook.getSheetAt(0);

            HSSFRow row = sheet.getRow(0);

            sheet.removeRow(row);

            FileOutputStream os = new FileOutputStream("d://test.xls");

            workbook.write(os);

            is.close();

            os.close();

        catch (Exception e) { 

            e.printStackTrace();

        }

     }

}

以下代码是使用shiftRow实现删除整行的效果。同样,也是需要在进行workbook.write后才会生效。

import org.apache.poi.hssf.usermodel.*;

import java.io.*;

public class testTools{

     public static void main(String[] args){

        try {

            FileInputStream is = new FileInputStream("d://test.xls");

            HSSFWorkbook workbook = new HSSFWorkbook(is);

            HSSFSheet sheet = workbook.getSheetAt(0);

            sheet.shiftRows(1, 4, -1);

            FileOutputStream os = new FileOutputStream("d://test.xls");

            workbook.write(os);

            is.close();

            os.close();

        catch (Exception e) { 

            e.printStackTrace();

        }

     }

}

2、修改单元格内容

poi对单元格操作的过程是:获取workbook->获取sheet->获取row->获取cell->操作。

示例:

public void setCell(HSSFWorkbook workbook,int rowNum,int colNum,String content){

        HSSFSheet sheet = workbook.getSheetAt(0);

        HSSFRow row = sheet.getRow(rowNum-1);

        HSSFCell cell = row.getCell((short)(colNum-1));

        cell.setCellValue(content);

}

分享到:
评论
3 楼 vke0919 2016-09-02  
其实shiftRow不能真正意义上的删除行,此操作只能将指定区域向上或向下移动几行,原来的行包含合并,样式等都还存。
2 楼 星海孤舟 2011-12-07  
animo_itey 写道
  sheet.shiftRows(1, 4, -1);

这里有点不明白 。
startRow 是从第一行开始 到第四行都删除吗?
这里的-1 是干什么的?

谢谢。

应该是方向吧,-1表示删除。shiftRows只是表示移动行,而不只是指删除行
1 楼 animo_itey 2011-12-07  
  sheet.shiftRows(1, 4, -1);

这里有点不明白 。
startRow 是从第一行开始 到第四行都删除吗?
这里的-1 是干什么的?

谢谢。

相关推荐

    poi文档和poi包

    POI提供了高级API,使开发者能够以编程方式操作文档内容,包括添加、删除、修改文本、公式、样式等。 **2. POI包** Apache POI项目包含了多个Java包,每个包都专注于处理特定类型的Office文档。例如: - `org....

    Poi修改word eclipse项目,

    这可能包括Apache POI的核心库以及其他可能的辅助库,如Apache Commons IO和Apache Commons Lang。 博客文章可能详细解释了这些步骤,并提供了代码示例,帮助读者理解如何使用Apache POI进行Word操作。这样的资源...

    使用poi替换word中的文字和图片实现打印

    在IT行业中,Apache POI是一个流行的Java库,用于读写Microsoft Office格式的文件,包括Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。本示例将深入探讨如何使用Apache POI库来替换Word文档...

    poi-scratchpad-3.12-20150511和poi-3.12-20150511包

    对于Android开发来说,Apache POI的使用可能并不常见,因为原生的Android API并不直接支持读写Office文件。但是,如果你的项目需要在Android设备上查看或编辑PowerPoint文件,那么Apache POI库就显得尤为重要。通过...

    POI替换文本和图片,解决分割异常替换不完全的问题

    在这个场景中,我们关注的是如何使用POI中的`XWPFDocument`类来有效地替换文本和图片,并解决在分割或替换过程中可能出现的异常,以及保持原有的文档样式不变。 首先,让我们深入了解`XWPFDocument`类。它是Apache ...

    poi3.9打包

    3. **修改现有文件**:更新内容、格式,添加或删除行、列、页眉页脚等。 4. **写入数据**:将程序生成的数据批量写入文件,非常适合报表生成或数据分析任务。 5. **导出为其他格式**:虽然不是POI的直接功能,但可以...

    poi4.1.2.zip

    9. **序列化和反序列化**: Apache POI提供写入和读取Excel文件的方法,使得你可以将Java对象的数据直接导出到Excel,或者从Excel文件中导入数据到Java对象。 10. **兼容性和错误处理**: POI 4.1.2版本修复了许多...

    java POI jar包

    - **处理PPT和PPTX文件**:通过SlideShow接口操作幻灯片(Slide),添加、删除和修改内容。 - **动画和过渡效果**:可以设置幻灯片的动画效果和转换过渡。 4. **高级功能**: - **事件模型**:对于大型文件,...

    POI解析EXCEl分层

    标题中的“POI解析EXCEL分层”指的是使用Apache POI库来解析Excel文件,并对数据进行层次化处理。Apache POI是一个流行的开源Java库,它允许开发者读取、写入和修改Microsoft Office格式的文件,包括Excel(.xls和....

    java j2ee poi xsl excel 文档操作 包括上传 下载

    - **修改Excel文件**:你可以直接对已存在的Excel文件进行修改,如增加新行、删除现有数据或更新单元格内容。 - **保存与导出**:完成操作后,可以将Workbook对象保存为磁盘上的Excel文件。 2. **Apache POI的...

    poi-3.17.7z(poi相关jar包)

    Apache POI 是一个开源项目,专门用于处理微软的Office文档格式,如Excel、Word和PowerPoint。在Java环境中,POI库提供了强大的功能,允许开发者读取、创建、修改这些文件。标题中的"poi-3.17.7z"指的是Apache POI库...

    java poi 3.10 jar

    Java POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在Java POI 3.10版本中,它提供了对Excel 2003和2007版本的强大支持,使得Java开发者能够方便地在程序中创建、修改...

    poi-bin-3.16-20170419.zip

    3. **PowerPoint处理**:利用POI的HSLF和XSLF组件,开发者可以操作PowerPoint的幻灯片,包括添加、删除和移动幻灯片,插入文本、图片、形状,以及应用动画和转换效果。 4. **低内存占用**:POI提供了一种称为SXSSF...

    java Apache poi 对word doc文件进行读写操作

    Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式,如 Word、Excel 和 PowerPoint。在处理 Word .doc 文件时,POI 提供了一个名为 HWPF(Horizontally Written Property Set Files)的模块。这个...

    POI操作Word资料

    Apache POI是一个流行的开源库,主要用于处理Microsoft Office格式的文件,包括Word(.doc和.docx)、Excel(.xls和.xlsx)以及PowerPoint(.ppt和.pptx)。在这个"POI操作Word资料"的主题中,我们将深入探讨如何...

    poi-3.17.jar

    "poi-3.17.jar"是Apache POI项目的一个版本库,包含了处理Excel(XLS和XLSX)、Word(DOC和DOCX)以及PowerPoint(PPT和PPTX)文件所需的所有类和方法。 在"poi-3.17.jar"中,我们可以找到以下关键知识点: 1. **...

    org.apache.poi.xwpf.converter.core-1.0.4.jar

    在实际开发中,Apache POI XWPF Converter Core经常被用在企业级应用中,例如生成报告、合同、发票等,以及在Web应用中将Word内容嵌入网页。由于其强大的功能和灵活性,它在数据驱动的文档处理领域扮演着重要角色。...

    poi-ooxml-3.15.zip

    3. **数据操作**:开发者可以添加、删除、移动和格式化单元格、行、列、段落、图片等元素。例如,可以使用POI设置单元格样式、公式、图表,或者在Word文档中插入表格和图片。 4. **流式处理**:为了处理大型文件,...

    poi所需要的jar

    至于PDF,虽然POI本身并不直接支持PDF操作,但可以与其他库结合,如iText或Apache PDFBox,实现PDF的读写。 Apache POI的核心组件包括: 1. HSSF:这是处理旧版Excel文件(.xls)的API,提供了创建、读取和修改...

    java的POI操作Excel文件.pdf

    本文将深入探讨使用POI进行Excel操作时的一些关键知识点,以及如何解决遇到的问题。 首先,我们来看一个常见的问题:设置分页符的bug。在POI的HSSFSheet类中,`setRowBreak`方法用于设置工作表的分页符。然而,当...

Global site tag (gtag.js) - Google Analytics