日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C#操作Excel常用組件及類的淺析

C# 操作Excel常用組件及類是什么情況呢?讓我們開始吧:

創(chuàng)新互聯(lián)建站是專業(yè)的柯城網(wǎng)站建設(shè)公司,柯城接單;提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行柯城網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

C# 操作Excel常用組件及類之添加引用

添加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常用組件及類之Excel控制類

 
 
 
  1. using System;  //C# 操作Excel常用組件及類
  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. /// 打開沒有模板的操作。  
  21. /// ﹤/summary﹥  
  22. public void Open()  
  23. {  
  24. this.Open(String.Empty);  
  25. }  //C# 操作Excel常用組件及類
  26.  
  27. /// ﹤summary﹥  
  28. /// 功能:實(shí)現(xiàn)Excel應(yīng)用程序的打開  
  29. /// ﹤/summary﹥  
  30. /// ﹤param name="TemplateFilePath"﹥模板文件物理路徑﹤/param﹥  
  31. public void Open(string TemplateFilePath)  
  32. {  
  33. //打開對(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)問題。");  
  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常用組件及類
  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常用組件及類 
  76. /// 將圖片插入到指定的單元格位置。  
  77. /// 注意:圖片必須是絕對(duì)物理路徑  
  78. /// ﹤/summary﹥  
  79. /// ﹤param name="RangeName"﹥單元格名稱,例如: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"﹥單元格名稱,例如: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常用組件及類
  107. //圖片路徑  
  108. //是否鏈接到文件  
  109. //圖片插入時(shí)是否隨文檔一起保存  
  110. //圖片在文檔中的坐標(biāo)位置(單位:points)  
  111. //圖片顯示的寬度和高度(單位:points)  
  112. //參數(shù)詳細(xì)信息參見: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"﹥單元格名稱,例如: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常用組件及類  
  131. /// 將圖片填充到Excel中的某個(gè)或某些單元格中  
  132. /// ﹤/summary﹥  
  133. /// ﹤param name="BeginRangeName"﹥插入的開始單元格﹤/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常用組件及類
  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ì)信息參見: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常用組件及類
  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文件保存到指定的目錄,目錄必須事先存在,文件名稱不一定要存在。  
  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常用組件及類
  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è)過程一定要執(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常用組件及類的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# 操作Excel常用組件及類有所幫助。


新聞標(biāo)題:C#操作Excel常用組件及類的淺析
路徑分享:http://www.dlmjj.cn/article/dpjdpch.html