閱讀454 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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 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博客:https://www.cnblogs.com/asxinyu/

歡迎大家進行交流,QQ :1287263703

E-mail:asxinyu@qq.com,asxinyu@126.com

Tag標簽: Matlab,Matlab開發,Matlab混合編程,C#.NET開發

最後更新:2017-04-02 06:51:33

  上一篇:go C++ casts那些事兒
  下一篇:go 菜單處理中常用的函數