/********************************************************************
*
* (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 poi复制execl的sheet页,跨文件操作,数据和样式全部复制,工具类
Poi excel 读取模板, 复制sheet表 表里面对行的复制的整合 如果看了还有不明白的地方,请留言,谢谢!
NULL 博文链接:https://cuisuqiang.iteye.com/blog/759555
poi无法直接获取excel各sheet页打印页数,调用vbs脚本获取excel各sheet页打印预览总页数。
用poi读取excel多个sheet内容,用流的方式判断excel的版本,2003,还是2007版本,并附带所需jar包,文件下载后解压,直接导入eclipse中即可使用
poi读取大文件Excel,使用xml格式解析,速度实测50mb文件13s,可指定sheet页内容,带工具类和测试类
为更方便的使用POI的API来操作Excel(2003)文件,对POI中针对Excel文件的读写进行了简单封装。此类中包含以下功能: 1.根据模板创建Excel文件 2.获取及更新Excel文件内容 3.创建、复制Sheet 4.设置Sheet名称 ... ...
java利用poi对Excel进行读写操作支持多sheet格式代码可直接运行
java使用POI读取excel文件返回第一张sheet表
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 二、 HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取...
Excel POI读取封装(文件+示范代码) package org.excel.service; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java....
用Java输出图表的场景和这个一样,POI、JXL对操作Excel图表无能为力 但Excel支持脚本的,也有工作表载入事件,所以也可以用同样的原理实现 只不过这次客户端不再是浏览器而是Excel应用程序。 这样交代的应该比较...
支持对excel的两中格式操作,封装了往单元格插入数据(支持书写单元格引用或者单元格坐标)、设置和获取sheet及workbook、往excel特定位置插入图片、获取excel中所有的图片、复制sheet、移除sheet、复制sheet中的...
poi操作excel文件的源代码 主要包括4个函数 1、poiWrite 向excel文件写入“姓名”两个字 2、poiWriteCopy 读取一个指定文件内容,写入另一个文件; 3、poiCopy2 读取指定路径文件,指定sheet,指定行、指定单元格...
java上传并读取excel工具类 涉及到MultiFile转FIle 以及多个sheet页
使用poi 分多个 sheet 导出excel,希望对您有帮助。
本例采用javabean + 注解的方式,对POI进行了封装,旨在针对不同的Excel文档用同样的方法处理,已到达代码的重复利用。该jar包包含导入 Import 和导出 Export Excel两部分。 (一)导入: /** * 描述: Excel 导入...
先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,采用Apache的POI的API来操作Excel,读取内容后保存到List中,再将List转Json(使用Linked,增删快,与Excel表顺序保持一致),Sheet表1————>List...
基于POI+XML配置模板Excel导出,代码简单易用,模板与html类似,配置极易上手。支持单sheet和多sheet导出。支持导出样式及单元格融合,表头融合
poi包涉及到excel操作,包含了excel的读取写入。可以看链接进行操作。具体的可以按照api