成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C# 操作Excel常用組件及類(lèi)的淺析

開(kāi)發(fā) 后端
C# 操作Excel常用組件及類(lèi)都是什么呢?C# 操作Excel常用組件及類(lèi)的是什么情況呢?那么本文就向你介紹C# 操作Excel常用組件及類(lèi)的具體的內(nèi)容

C# 操作Excel常用組件及類(lèi)是什么情況呢?讓我們開(kāi)始吧:

C# 操作Excel常用組件及類(lèi)之添加引用

添加com組件(Microsoft Office 11.0 Object Library )命名空間為Microsoft.Office.Interop.Excel

添加Excel.exe引用默認(rèn)路徑為C:\Program Files\Microsoft Office\OFFICE11\Excel.exe

C# 操作Excel常用組件及類(lèi)之Excel控制類(lèi)

  1. using System;  //C# 操作Excel常用組件及類(lèi)
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Windows.Forms;  
  5. using Excel = Microsoft.Office.Interop.Excel;  
  6.  
  7. namespace ExcelOperation  
  8. {  
  9. public class ExcelControl  
  10. {  
  11. private Excel.Application m_objExcel = null;  
  12. private Excel.Workbooks m_objBooks = null;  
  13. private Excel._Workbook m_objBook = null;  
  14. private Excel.Sheets m_objSheets = null;  
  15. private Excel._Worksheet m_objSheet = null;  
  16. private Excel.Range m_objRange = null;  
  17. private object m_objOpt = System.Reflection.Missing.Value;  
  18.  
  19. /// ﹤summary﹥  
  20. /// 打開(kāi)沒(méi)有模板的操作。  
  21. /// ﹤/summary﹥  
  22. public void Open()  
  23. {  
  24. this.Open(String.Empty);  
  25. }  //C# 操作Excel常用組件及類(lèi)
  26.  
  27. /// ﹤summary﹥  
  28. /// 功能:實(shí)現(xiàn)Excel應(yīng)用程序的打開(kāi)  
  29. /// ﹤/summary﹥  
  30. /// ﹤param name="TemplateFilePath"﹥模板文件物理路徑﹤/param﹥  
  31. public void Open(string TemplateFilePath)  
  32. {  
  33. //打開(kāi)對(duì)象  
  34. m_objExcel = new Excel.Application();  
  35. m_objExcel.Visible = false;  
  36. m_objExcel.DisplayAlerts = false;  
  37.  
  38. if (m_objExcel.Version != "11.0")  
  39. {  
  40. MessageBox.Show("您的 Excel 版本不是 11.0 (Office 2003),操作可能會(huì)出現(xiàn)問(wèn)題。");  
  41. m_objExcel.Quit();  
  42. return;  
  43. }  
  44.  
  45. m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;  
  46. if (TemplateFilePath.Equals(String.Empty))  
  47. {  
  48. m_objBook = (Excel._Workbook)(m_objBooks.Add(m_objOpt));  
  49. }  
  50. else 
  51. {  //C# 操作Excel常用組件及類(lèi)
  52. m_objBook = m_objBooks.Open(TemplateFilePath,  
  53.  
  54.  m_objOpt, m_objOpt, m_objOpt, m_objOpt,  
  55. m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt,   
  56.  
  57. m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);  
  58. }  
  59. m_objSheets = (Excel.Sheets)m_objBook.Worksheets;  
  60. m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));  
  61. m_objExcel.WorkbookBeforeClose +=   
  62.  
  63. new Excel.AppEvents_WorkbookBeforeCloseEventHandler(  
  64.  
  65. m_objExcel_WorkbookBeforeClose);  
  66. }  
  67.  
  68. private void m_objExcel_WorkbookBeforeClose(  
  69.  
  70. Excel.Workbook m_objBooks, ref bool _Cancel)  
  71. {  
  72. MessageBox.Show("保存完畢!");  
  73. }  
  74.  
  75. /// ﹤summary﹥ //C# 操作Excel常用組件及類(lèi) 
  76. /// 將圖片插入到指定的單元格位置。  
  77. /// 注意:圖片必須是絕對(duì)物理路徑  
  78. /// ﹤/summary﹥  
  79. /// ﹤param name="RangeName"﹥單元格名稱(chēng),例如:B4﹤/param﹥  
  80. /// ﹤param name="PicturePath"﹥要插入圖片的絕對(duì)路徑。﹤/param﹥  
  81. public void InsertPicture(string RangeName, string PicturePath)  
  82. {  
  83. m_objRange = m_objSheet.get_Range(RangeName, m_objOpt);  
  84. m_objRange.Select();  
  85. Excel.Pictures pics = (Excel.Pictures)m_objSheet.Pictures(m_objOpt);  
  86. pics.Insert(PicturePath, m_objOpt);  
  87. }  
  88.  
  89. /// ﹤summary﹥  
  90. /// 將圖片插入到指定的單元格位置,并設(shè)置圖片的寬度和高度。  
  91. /// 注意:圖片必須是絕對(duì)物理路徑  
  92. /// ﹤/summary﹥  
  93. /// ﹤param name="RangeName"﹥單元格名稱(chēng),例如:B4﹤/param﹥  
  94. /// ﹤param name="PicturePath"﹥要插入圖片的絕對(duì)路徑。﹤/param﹥  
  95. /// ﹤param name="PictuteWidth"﹥插入后,圖片在Excel中顯示的寬度。﹤/param﹥  
  96. /// ﹤param name="PictureHeight"﹥插入后,圖片在Excel中顯示的高度。﹤/param﹥  
  97. public void InsertPicture(string RangeName,   
  98.  
  99. string PicturePath, float PictuteWidth, float PictureHeight)  
  100. {  
  101. m_objRange = m_objSheet.get_Range(RangeName, m_objOpt);  
  102. m_objRange.Select();  
  103. float PicLeft, PicTop;  
  104. PicLeft = Convert.ToSingle(m_objRange.Left);  
  105. PicTop = Convert.ToSingle(m_objRange.Top);  
  106. //參數(shù)含義:  C# 操作Excel常用組件及類(lèi)
  107. //圖片路徑  
  108. //是否鏈接到文件  
  109. //圖片插入時(shí)是否隨文檔一起保存  
  110. //圖片在文檔中的坐標(biāo)位置(單位:points)  
  111. //圖片顯示的寬度和高度(單位:points)  
  112. //參數(shù)詳細(xì)信息參見(jiàn):http://msdn2.microsoft.com/zh-cn/library/aa221765(office.11).aspx  
  113. m_objSheet.Shapes.AddPicture(PicturePath,  
  114.  
  115.  Microsoft.Office.Core.MsoTriState.msoFalse,  
  116. Microsoft.Office.Core.MsoTriState.msoTrue,   
  117.  
  118. PicLeft, PicTop, PictuteWidth, PictureHeight);  
  119. }  
  120.  
  121. /// ﹤summary﹥  
  122. /// 將圖片填充到Excel中的某個(gè)或某些單元格中  
  123. /// 注意:圖片必須是絕對(duì)物理路徑  
  124. /// ﹤/summary﹥  
  125. /// ﹤param name="RangeName"﹥單元格名稱(chēng),例如:B4﹤/param﹥  
  126. /// ﹤param name="PicturePath"﹥要插入圖片的絕對(duì)路徑。﹤/param﹥  
  127. /// ﹤param name="PictuteWidth"﹥插入后,圖片在Excel中顯示的寬度。﹤/param﹥  
  128. /// ﹤param name="PictureHeight"﹥插入后,圖片在Excel中顯示的高度。﹤/param﹥  
  129.  
  130. /// ﹤summary﹥//C# 操作Excel常用組件及類(lèi)  
  131. /// 將圖片填充到Excel中的某個(gè)或某些單元格中  
  132. /// ﹤/summary﹥  
  133. /// ﹤param name="BeginRangeName"﹥插入的開(kāi)始單元格﹤/param﹥  
  134. /// ﹤param name="EndRangeName"﹥插入的結(jié)束單元格﹤/param﹥  
  135. /// ﹤param name="PicturePath"﹥插入圖片的絕對(duì)物理路徑﹤/param﹥  
  136. /// ﹤param name="IsMergeCells"﹥是否合并上面的單元格﹤/param﹥  
  137. public void InsertPicture(string BeginRangeName,string EndRangeName,   
  138.  
  139. string PicturePath,bool IsMergeCells)  
  140. {  
  141. m_objRange = m_objSheet.get_Range(BeginRangeName,  
  142.  
  143.  EndRangeName);  
  144.  //C# 操作Excel常用組件及類(lèi)
  145. //計(jì)算單元格的寬和高  
  146. float PictuteWidth, PictureHeight;  
  147. PictuteWidth = Convert.ToSingle(m_objRange.Width);  
  148. PictureHeight = Convert.ToSingle(m_objRange.Height);  
  149.  
  150. if (IsMergeCells)  
  151. {  
  152. //合并單元格  
  153. m_objRange.Merge(System.Reflection.Missing.Value);  
  154. m_objRange = m_objSheet.get_Range(BeginRangeName,  
  155.  
  156.  BeginRangeName);  
  157. }  
  158. m_objRange.Select();  
  159. float PicLeft, PicTop;  
  160. PicLeft = Convert.ToSingle(m_objRange.Left);  
  161. PicTop = Convert.ToSingle(m_objRange.Top);  
  162. //參數(shù)含義:  
  163. //圖片路徑  
  164. //是否鏈接到文件  
  165. //圖片插入時(shí)是否隨文檔一起保存  
  166. //圖片在文檔中的坐標(biāo)位置(單位:points)  
  167. //圖片顯示的寬度和高度(單位:points)  
  168. //參數(shù)詳細(xì)信息參見(jiàn):http://msdn2.microsoft.com/zh-cn/library/aa221765(office.11).aspx  
  169. m_objSheet.Shapes.AddPicture(PicturePath,   
  170.  
  171. Microsoft.Office.Core.MsoTriState.msoFalse,  
  172. Microsoft.Office.Core.MsoTriState.msoTrue,   
  173.  
  174. PicLeft, PicTop, PictuteWidth, PictureHeight);  
  175. }  
  176.  
  177. /// ﹤summary﹥  
  178. ///   
  179. /// ﹤/summary﹥  
  180. /// ﹤param name="BeginRangeName"﹥﹤/param﹥  
  181. /// ﹤param name="EndRangeName"﹥﹤/param﹥  
  182. /// ﹤param name="IsMergeCells"﹥﹤/param﹥  
  183. public void InsertLine(string BeginRangeName,   
  184.  
  185. string EndRangeName, bool IsMergeCells)  
  186. {  
  187. m_objRange = m_objSheet.get_Range(BeginRangeName,   
  188.  
  189. EndRangeName);  
  190.  //C# 操作Excel常用組件及類(lèi)
  191. //計(jì)算單元格的寬和高  
  192. float PictureWidth, PictureHeight;  
  193. PictureWidth = Convert.ToSingle(m_objRange.Width);  
  194. PictureHeight = Convert.ToSingle(m_objRange.Height);  
  195.  
  196. if (IsMergeCells)  
  197. {  
  198. //合并單元格  
  199. m_objRange.Merge(System.Reflection.Missing.Value);  
  200. m_objRange = m_objSheet.get_Range(BeginRangeName, BeginRangeName);  
  201. }  
  202. m_objRange.Select();  
  203. float PicLeft, PicTop;  
  204. PicLeft = Convert.ToSingle(m_objRange.Left);  
  205. PicTop = Convert.ToSingle(m_objRange.Top);  
  206. //參數(shù)含義:  
  207. //線的起點(diǎn)(X,Y)  
  208. //線的終點(diǎn)(X,Y)  
  209. m_objSheet.Shapes.AddLine(PicLeft,PicTop,PicLeft +   
  210.  
  211. PictureWidth,PicTop +PictureHeight);   
  212. }  
  213.  
  214. /// ﹤summary﹥  
  215. /// 將Excel文件保存到指定的目錄,目錄必須事先存在,文件名稱(chēng)不一定要存在。  
  216. /// ﹤/summary﹥  
  217. /// ﹤param name="OutputFilePath"﹥要保存成的文件的全路徑。﹤/param﹥  
  218. public void SaveFile(string OutputFilePath)  
  219. {  
  220. m_objBook.SaveAs(OutputFilePath, m_objOpt, m_objOpt,  
  221. m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange,  
  222. m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);  
  223.  
  224. this.Close();  
  225. }  //C# 操作Excel常用組件及類(lèi)
  226. /// ﹤summary﹥  
  227. /// 關(guān)閉應(yīng)用程序  
  228. /// ﹤/summary﹥  
  229. private void Close()  
  230. {  
  231. m_objBook.Close(false, m_objOpt, m_objOpt);  
  232. m_objExcel.Quit();  
  233. }  
  234.  
  235. /// ﹤summary﹥  
  236. /// 釋放所引用的COM對(duì)象。注意:這個(gè)過(guò)程一定要執(zhí)行。  
  237. /// ﹤/summary﹥  
  238. public void Dispose()  
  239. {  
  240. ReleaseObj(m_objSheets);  
  241. ReleaseObj(m_objBook);  
  242. ReleaseObj(m_objBooks);  
  243. ReleaseObj(m_objExcel);  
  244. System.GC.Collect();  
  245. System.GC.WaitForPendingFinalizers();  
  246. }  
  247. /// ﹤summary﹥  
  248. /// 釋放對(duì)象,內(nèi)部調(diào)用  
  249. /// ﹤/summary﹥  
  250. /// ﹤param name="o"﹥﹤/param﹥  
  251. private void ReleaseObj(object o)  
  252. {  
  253. try 
  254. {  
  255. System.Runtime.InteropServices.Marshal.ReleaseComObject(o);  
  256. }  
  257. catch { }  
  258. finally { o = null; }  
  259. }  
  260.  
  261. /// ﹤summary﹥  
  262. /// 刪除指定sheet下的指定行  
  263. /// ﹤/summary﹥  
  264. /// ﹤param name="SheetIndex"﹥sheet索引﹤/param﹥  
  265. /// ﹤param name="DeleteRowIndex"﹥行索引﹤/param﹥  
  266. public void DeleteRow(int SheetIndex, int DeleteRowIndex)  
  267. {  
  268. m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(SheetIndex));  
  269. m_objRange = (Excel.Range)m_objSheet.Rows[DeleteRowIndex,   
  270.  
  271. System.Reflection.Missing.Value];  
  272. m_objRange.EntireRow.Delete(Excel.XlDirection.xlToRight);  
  273. }  
  274.  
  275. /// ﹤summary﹥  
  276. /// 刪除指定sheet下的指定列  
  277. /// ﹤/summary﹥  
  278. /// ﹤param name="SheetIndex"﹥sheet索引﹤/param﹥  
  279. /// ﹤param name="DeleteColumnIndex"﹥列索引﹤/param﹥  
  280. public void DeleteColumn(int SheetIndex, int DeleteColumnIndex)  
  281. {  
  282. m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(SheetIndex));  
  283. m_objRange = (Excel.Range)m_objSheet.Columns[DeleteColumnIndex,   
  284.  
  285. System.Reflection.Missing.Value];  
  286. m_objRange.EntireColumn.Delete(Excel.XlDirection.xlDown);  
  287. }  
  288. }  
  289. }  

C# 操作Excel常用組件及類(lèi)的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# 操作Excel常用組件及類(lèi)有所幫助。

【編輯推薦】

  1. C#枚舉文件的代碼實(shí)現(xiàn)
  2. C# 操作Excel實(shí)例淺析
  3. C# 操作Excel之動(dòng)態(tài)創(chuàng)建淺析
  4. C# 操作Excel之Delphi控件方法
  5. C# 操作Excel二維圖之Delphi淺析
責(zé)任編輯:仲衡 來(lái)源: CSDN博客
相關(guān)推薦

2009-08-18 13:49:21

C# 操作Excel

2009-08-18 16:14:05

C# 操作Excel

2009-08-18 16:20:09

C# 操作Excel

2009-08-18 16:04:12

C# 操作Excel

2009-08-31 15:34:45

常用操作C# TreeView

2009-08-18 14:25:05

C# 操作Excel

2009-08-20 11:07:07

C#共享內(nèi)存

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2009-09-01 14:45:45

C#創(chuàng)建Excel文件

2009-08-17 13:34:02

C#異步操作

2009-08-21 17:24:06

C# SingleIn

2009-08-19 17:38:17

C# 操作符分類(lèi)

2009-08-17 17:56:32

C# 枚舉

2009-08-18 10:30:30

C#枚舉

2009-08-25 15:59:28

C#串口操作

2009-07-22 16:27:24

iBATIS配置類(lèi)iBATIS操作類(lèi)

2009-09-07 06:07:46

C#窗體設(shè)計(jì)

2009-08-18 14:46:16

C# 操作Excel

2009-08-27 16:18:47

C#類(lèi)C#結(jié)構(gòu)體
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 欧美日韩在线播放 | 国产精品视频一区二区三区不卡 | 久久视频免费看 | 日韩高清一区二区 | 精品乱码一区二区三四区视频 | 国产日产久久高清欧美一区 | 日韩视频精品在线 | 久久av网| 91传媒在线观看 | 欧美综合在线视频 | 看av网 | 理论片87福利理论电影 | 四虎永久在线精品免费一区二 | 成人小视频在线观看 | 午夜视频在线免费观看 | 亚洲第一视频网站 | 日本精品一区二区三区在线观看视频 | 狠狠干美女 | 激情欧美日韩一区二区 | 亚洲欧美中文字幕在线观看 | 四虎最新地址 | 午夜国产一级 | 久久久成人免费视频 | 午夜视频在线观看网址 | 久草精品视频 | 久久综合久久自在自线精品自 | 亚洲精品区 | 欧美日本韩国一区二区 | 中文字幕欧美一区 | 欧美日韩国产精品一区二区 | 午夜日韩视频 | 亚洲情综合五月天 | 久久精品一区 | 亚洲av毛片成人精品 | 蜜桃免费一区二区三区 | 男人天堂网址 | 久久大陆 | 国产精品特级毛片一区二区三区 | 欧美成人hd | 亚洲最新在线 | 中文字幕人成人 |