`
andymu1117
  • 浏览: 37952 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

POI读取EXCEL进行sheet复制

    博客分类:
  • java
 
阅读更多
/********************************************************************
 *
 * (C) Copyright ISFnet Japan, Ltd. 2011 All rights reserved.
 *
 ********************************************************************/
package excel;

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

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;

/**
 * <p>
 * 
 * @author ISFnet DALIAN muzongqin
 * @since 2011/08/10
 * @version 1.0
 */
public class CopyExcel {

	/**
	 * 
	 * 
	 * 
	 * @param args
	 *            void
	 * @throws IOException
	 * @throws FileNotFoundException
	 */
	public static void main(String[] args) throws FileNotFoundException, IOException {
		// テンプレートとなるExcelファイルのパスを取得します。
		final String INVOICE_FILE = "C:\\work\\jyuchu\\仕様書\\出力帳票\\修正済【完成】3_派遣労働者通知書.xls";
		// ファイルを読み込みます。
		POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(INVOICE_FILE));
		// ワークブックを読み込みます。
		HSSFWorkbook wb = new HSSFWorkbook(filein);
		// シートを読み込みます。
		HSSFSheet sheet1 = wb.getSheet("派遣労働者通知書");
		HSSFSheet sheet2 = wb.createSheet("派遣労働者通知書1");
		sheet2 = copySheet(sheet1, sheet2);
		FileOutputStream fileOut = new FileOutputStream("d:\\test1.xls");
		wb.write(fileOut);
		fileOut.close();

	}

	private static HSSFSheet copySheet(HSSFSheet sheetFrom, HSSFSheet sheetTo) {

		// 初期化
		CellRangeAddress region = null;
		Row rowFrom = null;
		Row rowTo = null;
		Cell cellFrom = null;
		Cell cellTo = null;
		
		//セル結合のコピー
		for (int i = 0; i < sheetFrom.getNumMergedRegions(); i++) {
			region = sheetFrom.getMergedRegion(i);
			if ((region.getFirstColumn() >= sheetFrom.getFirstRowNum())
					&& (region.getLastRow() <= sheetFrom.getLastRowNum())) {
				sheetTo.addMergedRegion(region);
			}
		}

		//セルのコピー
		for (int intRow = sheetFrom.getFirstRowNum(); intRow < sheetFrom.getLastRowNum(); intRow++) {
			rowFrom = sheetFrom.getRow(intRow);
			rowTo = sheetTo.createRow(intRow);
			if (null == rowFrom)
				continue;
			rowTo.setHeight(rowFrom.getHeight());
			for (int intCol = 0; intCol < rowFrom.getLastCellNum(); intCol++) {
				//セル幅のコピー
				sheetTo.setDefaultColumnStyle(intCol, sheetFrom.getColumnStyle(intCol));
				sheetTo.setColumnWidth(intCol, sheetFrom.getColumnWidth(intCol));
				cellFrom = rowFrom.getCell(intCol);
				cellTo = rowTo.createCell(intCol);
				if (null == cellFrom)
					continue;
				//セルスタイルとタイプのコピー
				cellTo.setCellStyle(cellFrom.getCellStyle());
				cellTo.setCellType(cellFrom.getCellType());
				
				//タイトル内容のコピー
				if (null != cellFrom.getStringCellValue() && !"".equals(cellFrom.getStringCellValue().trim()))
					cellTo.setCellValue(cellFrom.getStringCellValue());
			}
		}
		
		//枠線の設定
		sheetTo.setDisplayGridlines(false);
		//Excelのズーム設定
		sheetTo.setZoom(80, 100);
		
		//シートを戻る。
		return sheetTo;

	}

}

 

分享到:
评论

相关推荐

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

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

    Java poi复制execl的sheet页,跨文件操作,数据和样式全部复制,工具类

    总结起来,通过Apache POI,Java开发者可以方便地对Excel文件进行各种操作,包括复制Sheet页。在这个例子中,我们展示了如何跨文件复制Sheet页,不仅复制了数据,还保留了样式和格式,这对于数据处理和报告生成等...

    poi复制excel的sheet页

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

    利用POI读取excel写入到word

    要实现"利用POI读取excel写入到word",我们需要以下步骤: 1. **准备环境**:首先,确保你的项目已经引入了Apache POI的依赖。在给定的压缩包中,"poi - 副本"可能是包含POI库的JAR文件,你需要将其添加到你的项目...

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

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

    使用poi方式导出excel(分多个sheet导出)

    Apache POI 是一个开源项目,提供API来读取、写入和修改Microsoft Office文件格式,如Word(DOC、DOCX)、Excel(XLS、XLSX)和PowerPoint(PPT、PPTX)。在处理Excel文件时,POI提供了一个叫做HSSF(Horrible ...

    poi分多个sheet导出excel

    标题“poi分多个sheet导出excel”所指的就是如何使用POI库来动态地生成多个sheet,并根据设定的阈值(如50000条记录)进行切换。 首先,要使用Apache POI,你需要在项目中引入对应的依赖。如果你使用的是Maven,...

    POI读取excel的内容.zip

    本教程将详细讲解如何使用Apache POI库来读取Excel文件的内容。 首先,为了在Java项目中使用Apache POI,我们需要通过Maven进行依赖管理。在`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache.poi ...

    java利用poi对Excel进行读写操作支持多sheet格式

    对于标题中提到的"java利用poi对Excel进行读写操作支持多sheet格式",这涉及到以下几个关键知识点: 1. **创建Excel工作簿**:使用`WorkbookFactory.create()`方法,可以创建一个新的工作簿对象,无论是...

    Poi 读写Excel 合并ExcelSheet Struts2实现

    当涉及到合并Excel工作表时,我们需要遍历所有工作表,将它们的行复制到一个新的工作表中。可以使用`RowCopy.copyRow(HSSFSheet sourceSheet, HSSFSheet targetSheet, int newRowNum)`方法,注意要处理好合并单元格...

    poi实现sheet页复制和根据空行拆分

    以下是一个简化的代码示例,演示了如何使用POI进行Sheet复制和拆分: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; import java.io.FileOutputStream; import java.io...

    POI生成Excel POI操作Excel POI读取Excel POI类库

    **POI读取Excel** 读取Excel主要涉及以下步骤: 1. **打开Workbook**:通过 FileInputStream 读取Excel文件,然后创建Workbook对象。 2. **获取Sheet**:从Workbook中获取需要的Sheet。 3. **遍历Row和Cell**:...

    poi读取excel文件

    Apache POI提供了丰富的API,可以实现对Excel文件的复杂操作,如合并单元格、设置样式、处理公式等。在Android开发中,这些功能同样适用,但需要注意资源管理,因为Android设备的内存有限。 总的来说,Apache POI是...

    poi实现多sheet合并

    在IT行业中,尤其是在数据分析、报表处理等领域,经常需要对Excel文件进行操作,比如合并多个Excel文件或多个Sheet。Apache POI是一个流行的Java库,它允许开发者读取、创建和修改Microsoft Office格式的文件,包括...

    poi读取excel并输出到jsp页面

    标题中的“poi读取excel并输出到jsp页面”是指使用Apache POI库来处理Microsoft Excel文件,并将数据在JavaServer Pages (JSP) 页面上显示的技术。Apache POI 是一个开源项目,它允许开发者创建、修改和显示MS ...

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

    在实际应用中,这可能是因为你需要创建报告的副本,或者需要对原始数据进行部分备份。 要实现这个功能,我们需要以下步骤: 1. **引入Apache POI依赖**:在Java项目中,首先需要在Maven或Gradle的构建文件中添加...

    poi读取excel文件实例(兼容excel2007)

    在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...

    POI读取EXCEL教程

    在Java编程环境中,如果你需要读取或写入Excel文件,POI 提供了强大的支持。本教程将深入讲解如何使用POI的HSSF组件来处理Excel 97-2003格式的文件(BIFF8格式)。 一、Excel基础 Excel 97 文件格式,也被称作BIFF8...

    java利用poi对excel进行导入导出

    下面将详细介绍如何使用Java POI对Excel进行导入和导出。 首先,导入必要的POI库。在Maven项目中,你需要在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;version&gt;4.1.2 ...

    poi读取Excel用到的jar包

    标题提到的“poi读取Excel用到的jar包”指的是在Java项目中使用POI库进行Excel操作所需引入的依赖文件。这些jar包在描述中给出,包括了以下几个: 1. poi-ooxml-schemas-3.8-beta5-20111217.jar:这个文件包含了...

Global site tag (gtag.js) - Google Analytics