package lotus;
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFDrawing;
import org.apache.poi.xssf.usermodel.XSSFPicture;
import org.apache.poi.xssf.usermodel.XSSFPictureData;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFShape;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class MergeExcel2007X {
/**
* #合并多个excel文件
*
* @param filePath excel文件路径
* @param path 目标文件保存目录
* @param fileName 目标文件名称 path2, path, fileName, c1,r1,x1, y1, c2,r2, x2,y2
*
* public static void mergeExcel(String filePath, String path,
* String fileName, int dx12, int dy12, int dx22,int dy22) {
*/
public void mergeExcel(String filePath, String path, String fileName, boolean config, int c1, int r1, int x1,
int y1, int c2, int r2, int x2, int y2) {
List<String> fileLists = getFilePathList(filePath);
// 创建新的excel工作簿
XSSFWorkbook newExcelWorkBook = new XSSFWorkbook();
// 遍历需要合并的excel文件
for (String excelName : fileLists) {
File file = new File(excelName);
try (InputStream in = new FileInputStream(excelName)) {
// 创建工作簿
XSSFWorkbook tmpWorkBook = new XSSFWorkbook(in);
// 获取工作簿中的Sheet个数
int len = tmpWorkBook.getNumberOfSheets();
if (len <= 1) {
XSSFSheet tmpSheet = tmpWorkBook.getSheetAt(0);
// XSSFSheet newExcelSheet =
// newExcelWorkBook.createSheet(tmpSheet.getSheetName() + Math.random());
XSSFSheet newExcelSheet = newExcelWorkBook
.createSheet(file.getName().substring(0, file.getName().lastIndexOf(".")));
// 复制sheet内容
copyExcelSheet(newExcelWorkBook, tmpSheet, newExcelSheet);
copyPicture(newExcelWorkBook, tmpSheet, newExcelSheet, config, c1, r1, x1, y1, c2, r2, x2, y2);