C#.NET将数组导入Excel源代码

最近在做一个小工具,需要将.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 < rows; i++)
				{
					
   
   for (
   
   int j = 0; j < cols; 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 < rows; 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开发

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值