C#中怎么向Excel插入数据

发布时间:2021-07-07 16:19:08 作者:Leah
来源:亿速云 阅读:767

本篇文章给大家分享的是有关C#中怎么向Excel插入数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

调用方法:

  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. ///功能:实现Excel应用程序的打开  

  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),操作可能会出现问题。");  

  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. ///将图片插入到指定的单元格位置,并设置图片的宽度和高度。  

  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. //参数含义:  

  84. //图片路径  

  85. //是否链接到文件  

  86. //图片插入时是否随文档一起保存  

  87. //图片在文档中的坐标位置(单位:points)  

  88. //图片显示的宽度和高度(单位:points)  

  89. //参数详细信息参见: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. ///关闭应用程序  

  107. ///</summary> 

  108. privatevoidClose()  

  109. {  

  110. m_objBook.Close(false,m_objOpt,m_objOpt);  

  111. m_objExcel.Quit();  

  112. }  

  113.  

  114. ///<summary> 

  115. ///释放所引用的COM对象。注意:这个过程一定要执行。  

  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. ///释放对象,内部调用  

  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插入数据,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. 利用Jmeter向MySQL批量插入数据
  2. 如何批量向表中插入数据?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

excel

上一篇:C#中有哪些移位运算符

下一篇:C# 中怎么利用ODBC访问MySQL数据库

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》