`

POI - Excel复制行

    博客分类:
  • java
 
阅读更多
//感谢老婆 的支持;
/**
	 * 复制行
	 * 
	 * @param startRowIndex
	 *            起始行
	 * @param endRowIndex
	 *            结束行
	 * @param pPosition
	 *           目标起始行位置
	 */
	public void copyRows(int startRow, int endRow, int pPosition) {
		int pStartRow = startRow - 1;
		int pEndRow = endRow - 1;
		int targetRowFrom;
		int targetRowTo;
		int columnCount;
		CellRangeAddress region = null;
		int i;
		int j;
		if (pStartRow == -1 || pEndRow == -1) {
			return;
		}
		for (i = 0; i < currentSheet.getNumMergedRegions(); i++) {
			region = currentSheet.getMergedRegion(i);
			if ((region.getFirstRow() >= pStartRow)
					&& (region.getLastRow() <= pEndRow)) {
				targetRowFrom = region.getFirstRow() - pStartRow + pPosition;
				targetRowTo = region.getLastRow() - pStartRow + pPosition;
				CellRangeAddress newRegion = region.copy();
				newRegion.setFirstRow(targetRowFrom);
				newRegion.setFirstColumn(region.getFirstColumn());
				newRegion.setLastRow(targetRowTo);
				newRegion.setLastColumn(region.getLastColumn());
				currentSheet.addMergedRegion(newRegion);
			}
		}
		for (i = pStartRow; i <= pEndRow; i++) {
			HSSFRow sourceRow = currentSheet.getRow(i);
			columnCount = sourceRow.getLastCellNum();
			if (sourceRow != null) {
				HSSFRow newRow = currentSheet.createRow(pPosition - pStartRow
						+ i);
				newRow.setHeight(sourceRow.getHeight());
				for (j = 0; j < columnCount; j++) {
					HSSFCell templateCell = sourceRow.getCell(j);
					if (templateCell != null) {
						HSSFCell newCell = newRow.createCell(j);
						copyCell(templateCell, newCell);
					}
				}
			}
		}
	}

private void copyCell(HSSFCell srcCell, HSSFCell distCell) {
		distCell.setCellStyle(srcCell.getCellStyle());
		if (srcCell.getCellComment() != null) {
			distCell.setCellComment(srcCell.getCellComment());
		}
		int srcCellType = srcCell.getCellType();
		distCell.setCellType(srcCellType);
		if (srcCellType == HSSFCell.CELL_TYPE_NUMERIC) {
			if (HSSFDateUtil.isCellDateFormatted(srcCell)) {
				distCell.setCellValue(srcCell.getDateCellValue());
			} else {
				distCell.setCellValue(srcCell.getNumericCellValue());
			}
		} else if (srcCellType == HSSFCell.CELL_TYPE_STRING) {
			distCell.setCellValue(srcCell.getRichStringCellValue());
		} else if (srcCellType == HSSFCell.CELL_TYPE_BLANK) {
			// nothing21
		} else if (srcCellType == HSSFCell.CELL_TYPE_BOOLEAN) {
			distCell.setCellValue(srcCell.getBooleanCellValue());
		} else if (srcCellType == HSSFCell.CELL_TYPE_ERROR) {
			distCell.setCellErrorValue(srcCell.getErrorCellValue());
		} else if (srcCellType == HSSFCell.CELL_TYPE_FORMULA) {
			distCell.setCellFormula(srcCell.getCellFormula());
		} else { // nothing29

		}
	}

 

分享到:
评论

相关推荐

    POI-TL合并多个Word文档

    Apache POI是一个流行的开源库,允许开发者处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。POI-TL是POI的一个扩展,专门用于处理Word文档(.docx格式),提供了更高级的功能,如模板填充和文档合并。 ...

    poi复制指定行数的Excel表格内容

    在IT行业中,处理电子表格数据是一项常见的任务,尤其是在大数据分析、报表生成以及自动化流程中。Apache POI 是一个流行的开源库,它...通过理解和实践这些步骤,你可以创建出自己的Excel复制工具,满足各种定制需求。

    java-poi-excel-导出20万条记录【源代码】

    本示例“java-poi-excel-导出20万条记录【源代码】”展示了如何使用Apache POI库来高效地处理大数据量的Excel导出,避免内存溢出的问题。Apache POI是一个流行的开源Java API,用于读写Microsoft Office格式的文件,...

    poi excel 模板读取 复制表 复制行且区分合并行

    本篇将详细介绍如何使用Apache POI来读取Excel模板,复制工作表(Sheet)以及复制行,并特别关注如何处理合并单元格的情况。 首先,我们需要引入Apache POI的相关依赖库到我们的项目中。在Maven项目中,可以在pom....

    poi-3.7.jar

    - 使用HSSFWorkbook和HSSFSheet创建新的Excel文件,添加行和单元格数据。 - 使用XSSFWorkbook和XSSFSheet读取.xlsx文件,获取数据并进行分析。 - 使用HWPFDocument读取Word文档,遍历Paragraph对象,提取文本内容...

    poi-src-3.7正式版+源码

    7. **工作表操作**:可以创建、删除、复制工作表,调整工作表顺序,以及对工作表的行和列进行操作,如插入、删除、合并单元格等。 8. **事件模型API(Event API)**:对于大数据量的读取,Apache POI还提供了事件...

    利用POI读取excel写入到word

    在IT行业中,Apache POI是一个广泛使用的开源库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。本篇文章将详细讲解如何利用Apache POI库来读取Excel数据并将其写入到Word文档中。 首先,...

    poi-util.zip

    或者,你可以直接将 "poi-util" 中的类复制到你的项目中,这样无需引入额外的依赖。 poi-util 包含了核心的 Excel 操作类,比如 `ExcelExportUtil` 用于导出数据到 Excel,`ExcelImportUtil` 用于从 Excel 导入...

    poi-src-3.11

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。"poi-src-3.11" 提供的是Apache POI 3.11版本的源代码,这个版本是相对较为新的,旨在提供更高效、更便捷的方式来...

    apache-poi-3.17(最新稳定版本)

    Apache POI 是一个开源项目,由Apache软件基金会维护,它主要致力于处理Microsoft Office格式的文件,如Word(.doc和.docx)、Excel(.xls和.xlsx)、PowerPoint(.ppt和.pptx)等。Apache POI 提供了Java API,使得...

    poi3.7和对应依赖jar包操作excel

    - 处理工作表的行和列,如插入、删除、移动或复制。 - 创建和管理图表,展示数据可视化。 - 处理超链接、图像和其他复杂对象。 - 进行数据验证和条件格式化。 在实际项目中,Apache POI通常用于数据导入导出、报表...

    poi 将多个excel复制到新的excel 的多个sheet页中 并复制所有的样式 包括字体的样式

    poi 将多个excel复制到新的excel 的多个sheet页中 并复制所有的样式 包括字体的样式 背景颜色 单元格宽度 等

    poi包 EXCEL模板读取填数据并导出以及在模板某行插入新的行

    标题中的“poi包 EXCEL模板读取填数据并导出以及在模板某行插入新的行”涉及到了Apache POI库的使用,这是一个Java API,专门用于处理Microsoft Office格式的文件,如Excel。以下是对这个主题的详细解释: Apache ...

    poi 复制行

    poi 复制指定行到指定位置. 未包含jar包

    poi-3.8.zip

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。这个"poi-3.8.zip"压缩包包含了Apache POI 3.8版本的所有核心库,允许开发者在Java应用程序中创建、修改和读取...

    POI使用Excel模板文件循环输出行并导出Excel

    在这个特定的例子中,我们将讨论如何使用POI库基于一个Excel模板文件循环输出数据行,并将结果导出为新的Excel文件。 首先,我们需要理解POI库的基本概念。POI提供了HSSF(Horizontally SpreadSheet Format)和XSSF...

    poi excel 模板读取并导出带公式的excel文档

    - 还使用了`copyCellStyleOfRow`方法来复制行样式,确保新创建的行与模板中的样式一致。 #### 三、具体实现 1. **初始化工作簿**: - 通过`new HSSFWorkbook(new FileInputStream(filePath))`来读取指定路径下的...

    基于POI的Excel操作Java类

    为更方便的使用POI的API来操作Excel(2003)文件,对POI中针对Excel文件的读写进行了简单封装。此类中包含以下功能: 1.根据模板创建Excel文件 ...压缩包中包含POI的jar文件、POIExcel的jar文件及POIExcel的源码

    poi复制excel的sheet页

    本篇将详细讲解如何使用Apache POI来复制Excel的Sheet页。 一、Apache POI简介 Apache POI是一个开源项目,它为Java程序员提供了API,可以处理Microsoft Office格式的文件。在Excel方面,POI提供了HSSF(Horrible ...

    Java用POI解析Excel用到的jar包.zip

    大家都知道用Jave解析Excel要用到POI的jar包,但是在POI版本是5.0.0的时候,用到的jar包不止是一个poi的包,用到了8个jar包,少一个项目都会报找不到类的错,运行不起来,这个压缩包的里面的jar直接全部复制拿去用

Global site tag (gtag.js) - Google Analytics