自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

概述C#向Excel插入數(shù)據(jù)

開發(fā) 后端
本文介紹實現(xiàn)C#向Excel插入數(shù)據(jù)的方法,但各有不同的用處?,F(xiàn)將這2種方法共享出來, 希望需要的朋友進(jìn)行參考,代碼中已經(jīng)有詳細(xì)注釋了。

這幾天做C#向Excel插入數(shù)據(jù),其中有插入圖片的需求,經(jīng)試驗,下面2種方法都可以實現(xiàn)C#向Excel插入數(shù)據(jù),但各有不同的用處?,F(xiàn)將這2種方法共享出來, 希望需要的朋友進(jìn)行參考,代碼中已經(jīng)有詳細(xì)注釋了。

注意:使用之前需要引用COM:Microsoft Office 11.0 Object Library
如果引用列表中沒有,需要自行添加 C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE

調(diào)用方法:

  1. MengXianhui.Utility.ExcelReport.InsertPictureToExcelipt=
    newMengXianhui.Utility.ExcelReport.InsertPictureToExcel();  
  2. ipt.Open();  
  3. ipt.InsertPicture("B2",@"C:\Excellogo.gif");  
  4. ipt.InsertPicture("B8",@"C:\Excellogo.gif",120,80);  
  5. ipt.SaveFile(@"C:\ExcelTest.xls");  
  6. ipt.Dispose(); 

簡單包裝的類:

  1. usingSystem;  
  2. usingSystem.Windows.Forms;  
  3. usingExcel=Microsoft.Office.Interop.Excel;  
  4.  
  5. namespaceMengXianhui.Utility.ExcelReport  
  6. {  
  7. classInsertPictureToExcel  
  8. {  
  9. ///<summary> 
  10. ///打開沒有模板的操作。  
  11. ///</summary> 
  12. publicvoidOpen()  
  13. {  
  14. this.Open(String.Empty);  
  15. }  
  16.  
  17. ///<summary> 
  18. ///功能:實現(xiàn)Excel應(yīng)用程序的打開  
  19. ///</summary> 
  20. ///<paramnameparamname="TemplateFilePath">模板文件物理路徑</param> 
  21. publicvoidOpen(stringTemplateFilePath)  
  22. {  
  23. //打開對象  
  24. m_objExcel=newExcel.Application();  
  25. m_objExcel.Visible=false;  
  26. m_objExcel.DisplayAlerts=false;  
  27.  
  28. if(m_objExcel.Version!="11.0")  
  29. {  
  30. MessageBox.Show("您的Excel版本不是11.0(Office2003),操作可能會出現(xiàn)問題。");  
  31. m_objExcel.Quit();  
  32. return;  
  33. }  
  34.  
  35. m_objBooks=(Excel.Workbooks)m_objExcel.Workbooks;  
  36. if(TemplateFilePath.Equals(String.Empty))  
  37. {  
  38. m_objBook=(Excel._Workbook)(m_objBooks.Add(m_objOpt));  
  39. }  
  40. else  
  41. {  
  42. m_objBook=m_objBooks.Open
    (TemplateFilePath,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,
    m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt);  
  43. }  
  44. m_objSheets=(Excel.Sheets)m_objBook.Worksheets;  
  45. m_objSheet=(Excel._Worksheet)(m_objSheets.get_Item(1));  
  46. m_objExcel.WorkbookBeforeClose+=newExcel.
    AppEvents_WorkbookBeforeCloseEventHandler(m_objExcel_WorkbookBeforeClose);  
  47. }  
  48.  
  49. privatevoidm_objExcel_WorkbookBeforeClose(Excel.Workbookm_objBooks,refbool_Cancel)  
  50. {  
  51. MessageBox.Show("保存完畢!");  
  52. }  
  53.  
  54. ///<summary> 
  55. ///將圖片插入到指定的單元格位置。  
  56. ///注意:圖片必須是絕對物理路徑  
  57. ///</summary> 
  58. ///<paramnameparamname="RangeName">單元格名稱,例如:B4</param> 
  59. ///<paramnameparamname="PicturePath">要插入圖片的絕對路徑。</param> 
  60. publicvoidInsertPicture(stringRangeName,stringPicturePath)  
  61. {  
  62. m_objRange=m_objSheet.get_Range(RangeName,m_objOpt);  
  63. m_objRange.Select();  
  64. Excel.Picturespics=(Excel.Pictures)m_objSheet.Pictures(m_objOpt);  
  65. pics.Insert(PicturePath,m_objOpt);  
  66. }  
  67.  
  68. ///<summary> 
  69. ///將圖片插入到指定的單元格位置,并設(shè)置圖片的寬度和高度。  
  70. ///注意:圖片必須是絕對物理路徑  
  71. ///</summary> 
  72. ///<paramnameparamname="RangeName">單元格名稱,例如:B4</param> 
  73. ///<paramnameparamname="PicturePath">要插入圖片的絕對路徑。</param> 
  74. ///<paramnameparamname="PictuteWidth">插入后,圖片在Excel中顯示的寬度。</param> 
  75. ///<paramnameparamname="PictureHeight">插入后,圖片在Excel中顯示的高度。</param> 
  76. publicvoidInsertPicture
    (stringRangeName,stringPicturePath,floatPictuteWidth,floatPictureHeight)  
  77. {  
  78. m_objRange=m_objSheet.get_Range(RangeName,m_objOpt);  
  79. m_objRange.Select();  
  80. floatPicLeft,PicTop;  
  81. PicLeft=Convert.ToSingle(m_objRange.Left);  
  82. PicTop=Convert.ToSingle(m_objRange.Top);  
  83. //參數(shù)含義:  
  84. //圖片路徑  
  85. //是否鏈接到文件  
  86. //圖片插入時是否隨文檔一起保存  
  87. //圖片在文檔中的坐標(biāo)位置(單位:points)  
  88. //圖片顯示的寬度和高度(單位:points)  
  89. //參數(shù)詳細(xì)信息參見:http://msdn2.microsoft.com/zh-cn/library/aa221765(office.11).aspx  
  90. m_objSheet.Shapes.AddPicture(PicturePath,Microsoft.Office.Core.MsoTriState.
    msoFalse,Microsoft.Office.Core.MsoTriState.msoTrue,PicLeft,PicTop,
    PictuteWidth,PictureHeight);  
  91. }  
  92.  
  93. ///<summary> 
  94. ///將Excel文件保存到指定的目錄,目錄必須事先存在,文件名稱不一定要存在。  
  95. ///</summary> 
  96. ///<paramnameparamname="OutputFilePath">要保存成的文件的全路徑。</param> 
  97. publicvoidSaveFile(stringOutputFilePath)  
  98. {  
  99. m_objBook.SaveAs(OutputFilePath,m_objOpt,m_objOpt,  
  100. m_objOpt,m_objOpt,m_objOpt,Excel.XlSaveAsAccessMode.xlNoChange,  
  101. m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt);  
  102.  
  103. this.Close();  
  104. }  
  105. ///<summary> 
  106. ///關(guān)閉應(yīng)用程序  
  107. ///</summary> 
  108. privatevoidClose()  
  109. {  
  110. m_objBook.Close(false,m_objOpt,m_objOpt);  
  111. m_objExcel.Quit();  
  112. }  
  113.  
  114. ///<summary> 
  115. ///釋放所引用的COM對象。注意:這個過程一定要執(zhí)行。  
  116. ///</summary> 
  117. publicvoidDispose()  
  118. {  
  119. ReleaseObj(m_objSheets);  
  120. ReleaseObj(m_objBook);  
  121. ReleaseObj(m_objBooks);  
  122. ReleaseObj(m_objExcel);  
  123. System.GC.Collect();  
  124. System.GC.WaitForPendingFinalizers();  
  125. }  
  126. ///<summary> 
  127. ///釋放對象,內(nèi)部調(diào)用  
  128. ///</summary> 
  129. ///<paramnameparamname="o"></param> 
  130. privatevoidReleaseObj(objecto)  
  131. {  
  132. try  
  133. {  
  134. System.Runtime.InteropServices.Marshal.ReleaseComObject(o);  
  135. }  
  136. catch{}  
  137. finally{o=null;}  
  138. }  
  139.  
  140. privateExcel.Applicationm_objExcel=null;  
  141. privateExcel.Workbooksm_objBooks=null;  
  142. privateExcel._Workbookm_objBook=null;  
  143. privateExcel.Sheetsm_objSheets=null;  
  144. privateExcel._Worksheetm_objSheet=null;  
  145. privateExcel.Rangem_objRange=null;  
  146. privateobjectm_objOpt=System.Reflection.Missing.Value;  
  147. }  

以上介紹C#向Excel插入數(shù)據(jù)

【編輯推薦】

  1. 定義C#接口學(xué)習(xí)經(jīng)驗
  2. C# ListBox學(xué)習(xí)筆記
  3. 操作C# Dataset介紹
  4. C# ODBC訪問MySQL數(shù)據(jù)庫
  5. 淺析C#和Java不同點
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-08-11 14:51:47

C#讀取Excel中數(shù)

2009-08-07 17:54:41

C#單元格數(shù)據(jù)

2009-09-04 18:00:54

C#數(shù)據(jù)訪問層

2009-08-06 16:24:32

C#向Sql Serv

2009-08-17 17:42:57

C#數(shù)據(jù)庫操作類

2009-07-31 17:01:21

C#存取Access數(shù)

2009-08-25 12:50:32

數(shù)據(jù)庫常用C#代碼

2009-08-18 17:29:02

C#使用指針

2009-08-18 09:26:07

C#線程功能

2009-08-13 15:18:23

C#文件上傳

2009-08-31 09:44:23

C# Employee

2009-07-31 14:08:54

C# 匿名函數(shù)

2009-09-03 11:15:38

C#設(shè)置Coopera

2009-08-25 10:08:39

C# MyData對象

2009-08-19 11:09:00

C# Cast<T>

2009-08-24 18:09:13

C#構(gòu)造函數(shù)

2009-08-20 16:28:45

C#匿名方法

2009-08-25 16:49:44

C#使用if語句

2009-08-17 09:57:00

C# Windows

2009-09-03 10:42:16

C# Employee
點贊
收藏

51CTO技術(shù)棧公眾號