现有很多同样格式的Excel文件,用POI怎样把这些文件合并为一个,并且在这些相同的Excel中,有同名的工作薄,只需要累加数据就行。
求高人给例子,求指点。
用POI逐个读入excel,并把每一行写入到同一个workbook里面就ok了,不过要注意的是POI在数据量大的时候会内存溢出,最新版的POI已经解决了这个问题,可以查查官方文档
除了用POI之外,推荐试试Spire.XLS for Java控件,它能够支持将多个Excel文档合并为一个。产品包可在其官网获取,代码示例参考如下:
import com.spire.xls.*;
public class MergeExcels {
public static void main(String[] args){
//将待合并Excel文档的名称保存至字符串数组
String[] inputFiles = new String[]{"file1.xlsx","file2.xlsx"};
//创建一个新的Excel文档
Workbook newBook = new Workbook();
//清除默认的3张工作表
newBook.getWorksheets().clear();
//创建另一个Excel文档
Workbook tempBook = new Workbook();
//遍历数组,依次加载每个Excel文档并将文档中的所有工作表复制到新建的Excel文档中
for (String file : inputFiles)
{
tempBook.loadFromFile(file);
for (Worksheet sheet : (Iterable)tempBook.getWorksheets())
{
newBook.getWorksheets().addCopy(sheet, WorksheetCopyType.CopyAll);
}
}
//保存
newBook.saveToFile("MergeFiles.xlsx", ExcelVersion.Version2013);
}
}