假如,李小姐要把统计好的1-12月份的excel表格放进一个文件里。但12个月的表格是12个excel文件。同时12个excel文件里又有3个sheet。 若手工操作,要合并一起就是有36个sheet要手工操作。同时要保证不失误。
应用如下一小段C#代码,瞬间解决李小姐的麻烦。
文件最后附2分钟妙懂视频。
完整代码:
//保存结果的Excel的workbook , 取名 mwk
XSSFWorkbook mwk = new XSSFWorkbook();
//合并该文件夹里所有Excel
DirectoryInfo dinfo = new DirectoryInfo(@"H:\临时文件\testEXCEL");
int fn = 1;
foreach (FileInfo f in dinfo.GetFiles("*.xlsx")){
//所有Excel都有workbook形式打开
XSSFWorkbook openXLS = new XSSFWorkbook(f.FullName);
//打开后,复制里面的sheet到 复制到 mwk 中
for (int i = 0; i < openXLS.NumberOfSheets; i++)
{
XSSFSheet tmpSheet = openXLS.GetSheetAt(i) as XSSFSheet;
mpSheet.CopyTo(mwk, fn.ToString() + tmpSheet.SheetName, true, true);
}
fn++;
openXLS.Close();
}
//定义新结果 mwk 另存为 本地的硬盘目录
FileStream strm = new FileStream(@"H:\临时文件\testEXCEL\合并结果.xlsx",
FileMode.CreateNew,
FileAccess.Write,
FileShare.Write
);
mwk.Write(strm); //向硬盘目录保存
MessageBox.Show("合并完成");
2分钟演示上述代码: 视频演示
免费提供源码,可私信索取。
作者:白客不是黑客
往期文章: