今天项目的一个导出功能要改动,在导出的EXCEL文件中分组,真是变态啊,
在网上找了N久都没有C#的解决方案,VB的倒是有,但不合用。。。
经过几个小时的痛苦挣扎,终于搞掂了,不容易啊。。。
下面是代码:
string fileName = AppDomain.CurrentDomain.BaseDirectory + "1.xls";
Excel.Application xApp = new Excel.ApplicationClass();
xApp.Visible = false;
xApp.AlertBeforeOverwriting = false;//覆盖不弹窗
xApp.DisplayAlerts = false;
Excel.Workbook xBook = xApp.Workbooks._Open(fileName,
Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
Excel.Worksheet xSheet = (Excel.Worksheet)xBook.Sheets[1];
//关键代码
Range range = xSheet.get_Range(xSheet.Cells[4, 1], xSheet.Cells[7, 1]);
range.Rows.Select();
range.Rows.Group(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xSheet.SaveAs(AppDomain.CurrentDomain.BaseDirectory + "2.xls", //保存路径也可为上面打开的路径
Excel.XlFileFormat.xlExcel7, //指定保存格式
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Excel.XlSaveAsAccessMode.xlShared,
Missing.Value, Missing.
Value, Missing.Value);
//关闭Excel
xSheet = null;
xBook = null;
xApp.Quit(); //这一句是非常重要的,否则Excel对象不能从内存中退出
xApp = null;
GC.Collect();
System.GC.WaitForPendingFinalizers();
效果图:

