• 大小: 1.45MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-21
  • 语言: 其他
  • 标签: POIExcel  

资源简介

利用POI进行多张Excel表的合并。附源代码。

资源截图

代码片段和文件信息

package class_demo;

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.HSSFCellstyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class Excel_Sheet {
/*
 * 示例,在d盘放两个示例Excel文件(单个Sheet)。
 * 生成后会在D盘产生一个合并好Sheet的Excel文件。exlsample_2.xls
 */
public static void main(String[] args) {
try {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(“d:\\exlsample.xls“));
POIFSFileSystem fs_1 = new POIFSFileSystem(new FileInputStream(“d:\\exlsample_1.xls“));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFWorkbook wb_1 = new HSSFWorkbook(fs_1);
HSSFWorkbook wbt = new  HSSFWorkbook();
// source target 为源sheet 页和目标sheet页
wbt = copyRows(wbwbt);
wbt = copyRows(wb_1wbt);
FileOutputStream fileOut = new FileOutputStream(“d:\\exlsample_2.xls“);
wbt.write(fileOut);
fileOut.flush();
fileOut.close();
System.out.println(“生成完成!“);
} catch (Exception e) {
e.printStackTrace();
}
}

/*
 * 对SHeet进行复制,将源Excle保存到目标Excle中
 */
public static HSSFWorkbook copyRows(HSSFWorkbook wb HSSFWorkbook pTargetWb ) {
int pStartRow = 0;                       //开始行
int pEndRow =0;                          //结束行
int pPosition = 0;                       //位置
String pSourceSheetName=““;
String pTargetSheetName =““;
HSSFRow sourceRow = null;
HSSFRow targetRow = null;
HSSFCell sourceCell = null;
HSSFCell targetCell = null;
HSSFSheet sourceSheet = null;
HSSFSheet targetSheet = null;
Region region = null;
int cType;
int i;
short j;
int targetRowFrom;
int targetRowTo;
if ((pStartRow == -1) || (pEndRow == -1)) {
return null;
}
pSourceSheetName = wb.getSheetName(0);
pTargetSheetName = pSourceSheetName;
int pTargetSheetNumber = pTargetWb.getNumberOfSheets()+1;
if(pTargetWb.getSheet(pTargetSheetName) !=null){
pTargetSheetName = pTargetSheetName+pTargetSheetNumber;
}
pTargetWb.createSheet(pTargetSheetName);
sourceSheet = wb.getSheet(pSourceSheetName);
targetSheet = pTargetWb.getSheet(pTargetSheetName);
pEndRow = sourceSheet.getPhysicalNumberOfRows();
// 拷贝合并的单元格
for (i = 0; i < sourceSheet.getNumMergedRegions(); i++) {
region = sourceSheet.getMergedRegionAt(i);
if ((region.getRowFrom() >= pStartRow)
&& (region.getRowTo() <= pEndRow)) {
targetRowFrom = region.getRowFrom() - pStartRow + pPosition;
targetRowTo = region.getRowTo() - pStartRow + pPosition;
region.setRowFrom(targetRowFrom);
region.setRowTo(targetRowTo);
targetSheet.addMergedRegion(region);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        379  2012-03-31 09:53  POI_Excel_Sheet\Java_Demo\.classpath

     文件        784  2012-03-31 10:24  POI_Excel_Sheet\Java_Demo\.myeclipse\profiler\Excel_Sheet.xml

     文件        385  2012-03-31 09:13  POI_Excel_Sheet\Java_Demo\.project

     文件        629  2012-03-31 09:14  POI_Excel_Sheet\Java_Demo\.settings\org.eclipse.jdt.core.prefs

     文件       9299  2012-03-31 11:43  POI_Excel_Sheet\Java_Demo\bin\class_demo\Excel_Sheet.class

     文件       8491  2012-03-31 11:43  POI_Excel_Sheet\Java_Demo\src\class_demo\Excel_Sheet.java

     文件    1675036  2011-08-22 11:25  POI_Excel_Sheet\poi-3.7-20101029.jar

     文件      16151  2012-03-31 15:24  POI_Excel_Sheet\POI_Excel_Sheet.docx

     目录          0  2012-03-31 15:25  POI_Excel_Sheet\Java_Demo\.myeclipse\profiler

     目录          0  2012-03-31 15:25  POI_Excel_Sheet\Java_Demo\bin\class_demo

     目录          0  2012-03-31 15:25  POI_Excel_Sheet\Java_Demo\src\class_demo

     目录          0  2012-03-31 15:25  POI_Excel_Sheet\Java_Demo\.myeclipse

     目录          0  2012-03-31 15:25  POI_Excel_Sheet\Java_Demo\.settings

     目录          0  2012-03-31 15:25  POI_Excel_Sheet\Java_Demo\bin

     目录          0  2012-03-31 15:25  POI_Excel_Sheet\Java_Demo\src

     目录          0  2012-03-31 15:25  POI_Excel_Sheet\Java_Demo

     目录          0  2012-03-31 15:25  POI_Excel_Sheet

----------- ---------  ---------- -----  ----

              1711154                    17


评论

共有 条评论