最近在做一个小工具,需要将.NET中计算的二维数组和交错数组的数据导入到Excel文件中,到博客园找了一下,有不少前辈已经贴了很完善的代码。我稍微改进了下,特意再次分享。由于比较乱,下面代码的出处不知在哪(只知道在博客园),在此谢过。当然先要应用Interop.Excel.
using Excel ;
......
/// /// 将二维数组数据导入到Excel中 /// /// 数据 /// 保存的文件名(路径) /// 是否保存成功 public static bool ConvertDataToExcel(T[,] data,string xlsSaveFileName) { //在做这些前,将Excl添加到引用中来!! Excel.Application excel = new Excel.Application(); //如果系统是Excl2007,添加的引用会不一样,代码如下:Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); if (excel == null) { return false; } else { Excel.Workbook xlBook = excel.Workbooks.Add(true); Excel.Worksheet xlSheet = (Excel.Worksheet)xlBook.Worksheets[1]; int rows = data.GetLength(0);//行 int cols = data.GetLength(1);//列 //导入数据 for (int i = 0; i for (int j = 0; j if (data[i,j]!=null ) { excel.Cells[i + 1, j + 1] = data[i, j].ToString().Trim(); } } } try { xlBook.Saved = true; xlBook.SaveCopyAs(xlsSaveFileName); return true; } catch { return false; } finally { excel.Quit(); excel = null; GC.Collect(); } } }
下面是交错数据的到处,其实大概差不多,本来想把这2个泛型放到一个类里面去的,但不知道如果在里面判断类型和转换,试了半天没成功,放弃了。
/// /// 将二维交错数组数组数据导入到Excel中 /// /// 数据 /// 保存的文件名(路径) /// 是否保存成功 public static bool ConvertDataToExcel(T[][] data,string xlsSaveFileName) { //在做这些前,将Excl添加到引用中来!! Excel.Application excel = new Excel.Application(); //如果系统是Excl2007,添加的引用会不一样,代码如下:Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); if (excel == null) { return false; } else { Excel.Workbook xlBook = excel.Workbooks.Add(true); Excel.Worksheet xlSheet = (Excel.Worksheet)xlBook.Worksheets[1]; int rows = data.GetLength(0);//行 //int cols = data.GetLength(1);//列 //导入数据 for (int i = 0; i for (int j = 0; j if (data[i][j]!=null ) { excel.Cells[i + 1, j + 1] = data[i][ j].ToString().Trim(); } } } try { xlBook.Saved = true; xlBook.SaveCopyAs(xlsSaveFileName); return true; } catch { return false; } finally { excel.Quit(); excel = null; GC.Collect(); } } }
听说有更好的Excel读写组件NPOI,回去试一下看看。。
编程爱好者,关注.NET软件开发,Matlab混合编程及网络技术
欢迎光临我的Cnblog博客:http://www.cnblogs.com/asxinyu/
欢迎大家进行交流,QQ :1287263703
E-mail:asxinyu@qq.com,asxinyu@126.com
Tag标签: Matlab,Matlab开发,Matlab混合编程,C#.NET开发