小编典典
经过研究和尝试,这里是我的解决方案。我已经通过Java 1.6和apache-poi 3.8进行了测试
在这里,我将不提供适用于我的解决方案,特别是在这种情况下,我将粘贴工作表和输入流列表(我要合并的不同工作簿)。
我的解决方案是一个合并的解决方案,我从这里合并了整个源代码,我想与所有人共享此代码,但都遇到了同样的问题。
/**
* Original version available from:
* http://www.coderanch.com/t/420958/open-source/Copying-sheet-excel-file-another
**/
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellRangeAddress;
public class CopySheets {
public Workbook mergeExcelFiles(Workbook book, List inList) throws IOException {
for (InputStream fin : inList) {
Workbook b = WorkbookFactory.create(fin);
for (int i = 0; i < b.getNumberOfSheets(); i++) {
// not entering sheet name, because of duplicated names
copySheets(book.createSheet(),b.getSheetAt(i));
}
}
return book;
}
/**
* @param newSheet the sheet to create from the copy.
* @param sheet the sheet to copy.
*/
public static void copySheets(Sheet newSheet, Sheet sheet){
copySheets(newSheet, sheet, true);
}
/**
* @param new