今天项目的一个导出功能要改动,在导出的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();
效果图: