`
ujoc
  • 浏览: 49052 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

利用poi在Excel中插入

阅读更多

关于Excel中插入

poi提供的Class HSSFSheet 中的函数shiftRows可以把某区域的行移动,但是移动后剩下的区域却为空了。以下程序实现了按照原来的形式插入行的效果。而不是单单只是移动。

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 *
 * @author ZhangPuSheng
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws FileNotFoundException, IOException {
        // TODO code application logic here
        FileInputStream myxls = new FileInputStream("workbook.xls");
        HSSFWorkbook wb = new HSSFWorkbook(myxls);
        HSSFSheet sheet= wb.getSheetAt(0);
        int startRow=2;
        int rows =10;

        insertRow(sheet,startRow,rows);
       
        FileOutputStream myxlsout = new FileOutputStream("workbook.xls");
        wb.write(myxlsout);
        myxlsout.close();
        
    }

    private static void insertRow(HSSFSheet sheet, int startRow, int rows) {
        sheet.shiftRows(startRow, sheet.getLastRowNum(), rows, true, false);


        for (int i = 0; i < rows; i++) {
            HSSFRow sourceRow = null;//原始位置
            HSSFRow targetRow = null;//移动后位置
            HSSFCell sourceCell = null;
            HSSFCell targetCell = null;
            sourceRow = sheet.createRow(startRow);
            targetRow = sheet.getRow(startRow + rows);
            sourceRow.setHeight(targetRow.getHeight());

            for (int m = targetRow.getFirstCellNum(); m < targetRow.getPhysicalNumberOfCells(); m++) {
                sourceCell = sourceRow.createCell(m);
                targetCell = targetRow.getCell(m);
                sourceCell.setCellStyle(targetCell.getCellStyle());
                sourceCell.setCellType(targetCell.getCellType());
            }
            startRow++;
        }

    }


}

 注意:

sourceRow = sheet.createRow(startRow);和sourceCell = sourceRow.createCell(m);这两行很关键,

必须用create...,而不能用get...。因为被shiftRows后的区域是空,用get只能得到null,并且抛出异常。

 

 

  

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    利用POI解析excel并存入数据库demo

    在这个"利用POI解析excel并存入数据库demo"中,我们将关注如何使用 POI 库来读取 Excel 文件,并将数据有效地存入 MySQL 数据库。 首先,要开始使用 POI,你需要在你的项目中引入相应的依赖。如果你使用的是 Maven...

    利用poi获取excel数据批量插入大量数据到mysql

    本教程将详述如何使用Apache POI库读取Excel数据,并通过Java的JDBC接口批量插入到MySQL数据库中。Apache POI是Java平台上的一个开源项目,它允许程序员创建、修改和显示Microsoft Office格式的文件,其中包括Excel...

    java的poi生成excel图表demo

    在本示例中,我们将深入探讨如何利用POI库来生成Excel中的图表曲线,这对于数据可视化和报告生成非常有用。 1. **Apache POI介绍** Apache POI是一个开源项目,提供了API来处理Microsoft Office格式的文件。在Java...

    POI操作Word中插入文本和图片

    在本文中,我们将深入探讨如何使用Apache POI在Word文档中插入文本和图片,这对于创建动态报告模板尤其有用。 一、Apache POI基础 Apache POI提供了一系列接口和类,用于读写微软的Office文件格式。对于Word处理,...

    利用java往excel中插入图片

    本篇文章将详细介绍如何利用Java和Apache POI库向Excel工作表中插入图片。 首先,我们需要理解Apache POI的工作原理。POI提供了一个名为HSSFPatriarch的类,它是Excel中的图形绘制容器,可以用于插入图片。对于....

    java利用poi操作excel所需要的jar包

    在标题和描述中提到的"java利用poi操作excel所需要的jar包"是POI项目的核心依赖,包括以下几个部分: 1. **poi-3.14.jar**: 这是Apache POI的主要库,提供了对低级HSSF(Horrible Spreadsheet Format)的支持,用于...

    java利用poi生成excel报表、处理word文档

    在本场景中,我们关注的是如何利用POI来生成Excel报表以及处理Word文档。 一、Java POI与Excel报表生成 1. 创建Excel工作簿(Workbook):在Java中,我们首先需要创建一个`XSSFWorkbook`对象,它代表Excel工作簿。`...

    利用poi+word模版书签,向word中插入数据

    你可以参考这些源码进一步学习和实践如何利用POI和Word模板进行数据插入。 总结起来,利用Apache POI的XWPF模块和Word模板中的书签,可以高效地生成批量定制的Word文档,这对于企业报告、合同生成等场景具有很高的...

    SSM框架利用poi导入导出Excel文件 demo

    在本示例"SSM框架利用poi导入导出Excel文件 demo"中,我们将探讨如何在SSM项目中使用Apache POI库来实现Excel文件的导入与导出功能。 Apache POI是一个流行的开源库,它允许开发者在Java应用程序中创建、修改和显示...

    POI操作Excel完美生成水印

    本教程将深入探讨如何利用Apache POI来在Excel文件中完美地生成水印。水印通常用于标识文档的所有权或提供额外的安全层,而这里的水印是通过将文字转化为图片再添加到Excel工作表中实现的。 首先,我们需要了解...

    利用poi把excel数据批量导入mysql

    本文将详细讲解如何使用Apache POI库处理Excel文件,并通过Java的JDBC接口将数据批量插入到MySQL数据库中。 Apache POI是Java领域的一个开源库,专门用于读写Microsoft Office格式的文件,包括Excel(.xls或.xlsx)...

    使用poi生成Excel所需要的jar包

    在这个场景中,"使用poi生成Excel所需要的jar包"指的是利用Apache POI库来生成Excel文件。POI-3.9.jar是Apache POI项目的一个版本,包含了所有必要的类和方法,让我们可以处理Excel的XLS和XLSX格式。 首先,Apache ...

    poi excel转换成bean

    在Java开发中,Apache POI 是一个非常流行的库,它允许程序员创建、修改和显示Microsoft Office格式的文件,包括Excel工作簿。标题“poi excel转换成bean”涉及到的关键技术是使用Apache POI从Excel文件中读取数据并...

    Java利用poi对word插入文字图片

    本项目“Java利用poi对word插入文字图片”是一个具体的示例,旨在教给你如何使用Apache POI API在Word文档中插入文字和图片。下面将详细阐述相关的知识点。 首先,Apache POI提供了HWPF(Horrible Word Processor ...

    Java 使用poi导入excel 并使用xml做数据验证

    通过解析`workbook.xml`,我们可以获取到预定义的数据验证规则,或者创建新的XML来定义自定义规则,然后利用POI的API将这些规则应用到Excel工作表。 在数据验证之后,我们需要对处理的数据进行进一步的业务逻辑检查...

    POI解析excel并存入mysqlのdemo

    这个“POI解析excel并存入mysqlのdemo”是利用 Java 的 Apache POI 库来读取 Excel 数据,并将这些数据存储到 MySQL 数据库中的示例。下面我们将详细探讨相关的知识点。 1. **Apache POI**: Apache POI 是一个...

    poi生成excel表格

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel。...通过这些示例,你可以理解如何在Java应用中利用POI进行Excel文件的创建、读取和修改,以及如何结合数据库操作实现数据的导入导出。

    Java利用poi导出excel表格

    本篇文章将详细探讨如何利用Apache POI库在Java中导出Excel表格。 首先,我们需要理解Excel文件的基本结构。Excel文件是由工作簿(Workbook)组成的,工作簿中包含一个或多个工作表(Sheet)。每个工作表由行(Row...

    基于POI的Excel多Sheet页导出导入工具类

    在Java开发中,Apache POI库是一个非常重要的工具,它允许程序员读取、写入和修改Microsoft Office格式的文件,包括Excel。"基于POI的Excel多Sheet页导出导入工具类"是一个实用的Java类库,专为处理Excel文件中的多...

    poi导出根据模板导出excel和简单列表导出excel源码

    在本案例中,我们关注的是如何使用 Apache POI 库来导出 Excel 文件,特别是根据模板导出和简单列表导出。下面将详细介绍这个过程。 1. **Apache POI 概述** Apache POI 提供了 Java API 来读写 Microsoft Office ...

Global site tag (gtag.js) - Google Analytics