/********************************************************************
*
* (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;
}
}
分享到:
相关推荐
在Java开发中,Apache POI库是一个非常重要的工具,它允许程序员读取、写入和修改Microsoft Office格式的文件,包括Excel。"基于POI的Excel多Sheet页导出导入工具类"是一个实用的Java类库,专为处理Excel文件中的多...
总结起来,通过Apache POI,Java开发者可以方便地对Excel文件进行各种操作,包括复制Sheet页。在这个例子中,我们展示了如何跨文件复制Sheet页,不仅复制了数据,还保留了样式和格式,这对于数据处理和报告生成等...
本篇将详细讲解如何使用Apache POI来复制Excel的Sheet页。 一、Apache POI简介 Apache POI是一个开源项目,它为Java程序员提供了API,可以处理Microsoft Office格式的文件。在Excel方面,POI提供了HSSF(Horrible ...
要实现"利用POI读取excel写入到word",我们需要以下步骤: 1. **准备环境**:首先,确保你的项目已经引入了Apache POI的依赖。在给定的压缩包中,"poi - 副本"可能是包含POI库的JAR文件,你需要将其添加到你的项目...
本篇将详细介绍如何使用Apache POI来读取Excel模板,复制工作表(Sheet)以及复制行,并特别关注如何处理合并单元格的情况。 首先,我们需要引入Apache POI的相关依赖库到我们的项目中。在Maven项目中,可以在pom....
Apache POI 是一个开源项目,提供API来读取、写入和修改Microsoft Office文件格式,如Word(DOC、DOCX)、Excel(XLS、XLSX)和PowerPoint(PPT、PPTX)。在处理Excel文件时,POI提供了一个叫做HSSF(Horrible ...
标题“poi分多个sheet导出excel”所指的就是如何使用POI库来动态地生成多个sheet,并根据设定的阈值(如50000条记录)进行切换。 首先,要使用Apache POI,你需要在项目中引入对应的依赖。如果你使用的是Maven,...
本教程将详细讲解如何使用Apache POI库来读取Excel文件的内容。 首先,为了在Java项目中使用Apache POI,我们需要通过Maven进行依赖管理。在`pom.xml`文件中添加以下依赖: ```xml <groupId>org.apache.poi ...
对于标题中提到的"java利用poi对Excel进行读写操作支持多sheet格式",这涉及到以下几个关键知识点: 1. **创建Excel工作簿**:使用`WorkbookFactory.create()`方法,可以创建一个新的工作簿对象,无论是...
当涉及到合并Excel工作表时,我们需要遍历所有工作表,将它们的行复制到一个新的工作表中。可以使用`RowCopy.copyRow(HSSFSheet sourceSheet, HSSFSheet targetSheet, int newRowNum)`方法,注意要处理好合并单元格...
以下是一个简化的代码示例,演示了如何使用POI进行Sheet复制和拆分: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; import java.io.FileOutputStream; import java.io...
**POI读取Excel** 读取Excel主要涉及以下步骤: 1. **打开Workbook**:通过 FileInputStream 读取Excel文件,然后创建Workbook对象。 2. **获取Sheet**:从Workbook中获取需要的Sheet。 3. **遍历Row和Cell**:...
Apache POI提供了丰富的API,可以实现对Excel文件的复杂操作,如合并单元格、设置样式、处理公式等。在Android开发中,这些功能同样适用,但需要注意资源管理,因为Android设备的内存有限。 总的来说,Apache POI是...
在IT行业中,尤其是在数据分析、报表处理等领域,经常需要对Excel文件进行操作,比如合并多个Excel文件或多个Sheet。Apache POI是一个流行的Java库,它允许开发者读取、创建和修改Microsoft Office格式的文件,包括...
标题中的“poi读取excel并输出到jsp页面”是指使用Apache POI库来处理Microsoft Excel文件,并将数据在JavaServer Pages (JSP) 页面上显示的技术。Apache POI 是一个开源项目,它允许开发者创建、修改和显示MS ...
在实际应用中,这可能是因为你需要创建报告的副本,或者需要对原始数据进行部分备份。 要实现这个功能,我们需要以下步骤: 1. **引入Apache POI依赖**:在Java项目中,首先需要在Maven或Gradle的构建文件中添加...
在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...
在Java编程环境中,如果你需要读取或写入Excel文件,POI 提供了强大的支持。本教程将深入讲解如何使用POI的HSSF组件来处理Excel 97-2003格式的文件(BIFF8格式)。 一、Excel基础 Excel 97 文件格式,也被称作BIFF8...
下面将详细介绍如何使用Java POI对Excel进行导入和导出。 首先,导入必要的POI库。在Maven项目中,你需要在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.poi <artifactId>poi <version>4.1.2 ...
标题提到的“poi读取Excel用到的jar包”指的是在Java项目中使用POI库进行Excel操作所需引入的依赖文件。这些jar包在描述中给出,包括了以下几个: 1. poi-ooxml-schemas-3.8-beta5-20111217.jar:这个文件包含了...