ExcelBase.cs
上传用户:jx_fiona
上传日期:2014-03-08
资源大小:1387k
文件大小:18k
源码类别:

打印编程

开发平台:

Others

  1. using System;
  2. using System.Data;
  3. using System.Drawing;
  4. using GoldPrinter.ExcelConstants;
  5. namespace GoldPrinter
  6. {
  7. /// <summary>
  8. /// 该类主要定义Excel的程序对象,启动Excel并打印及保存。可能依赖于Interop.VBIDE及Interop.Microsoft.Office.Core,如果需要,请加上。
  9. /// 
  10. /// 作 者:长江支流(周方勇)
  11. /// Email:flygoldfish@163.com  QQ:150439795
  12. /// 网 址:www.webmis.com.cn
  13. /// ★★★★★您可以免费使用此程序,但是请您完整保留此说明,以维护知识产权★★★★★
  14. /// 
  15. /// </summary>
  16. public class ExcelBase
  17. {
  18. private Excel.Application _xlApp; //Excel应用程序
  19. private Excel.Workbook _xlWorkbook; //Excel工作薄,默认只有一个,用Open([Template])创建
  20. private bool _IsVisibledExcel; //打印或预览时是否还要显示Excel窗体
  21. private string _FormCaption; //打印预览Excel窗体的标题栏
  22. private Object oMissing = System.Reflection.Missing.Value;  //实例化参数对象
  23. #region _xlApp、_xlWorkbook、IsVisibledExcel、FormCaption属性
  24. /// <summary>
  25. /// Excel应用程序
  26. /// </summary>
  27. public Excel.Application Application
  28. {
  29. get
  30. {
  31. return _xlApp;
  32. }
  33. }
  34. /// <summary>
  35. /// Excel工作薄,默认只有一个,用Open([Template])创建
  36. /// </summary>
  37. public Excel.Workbook Workbooks
  38. {
  39. get
  40. {
  41. return _xlWorkbook;
  42. }
  43. }
  44. /// <summary>
  45. /// 打印或预览时是否还要显示Excel窗体
  46. /// </summary>
  47. public bool IsVisibledExcel
  48. {
  49. get
  50. {
  51. return _IsVisibledExcel;
  52. }
  53. set
  54. {
  55. _IsVisibledExcel = value;
  56. }
  57. }
  58. /// <summary>
  59. /// 打印预览Excel窗体的标题栏
  60. /// </summary>
  61. public string FormCaption
  62. {
  63. get
  64. {
  65. return _FormCaption;
  66. }
  67. set
  68. {
  69. _FormCaption = value;
  70. }
  71. }
  72. #endregion
  73. /// <summary>
  74. /// 创建立Excel新的实例
  75. /// </summary>
  76. public ExcelBase()
  77. {
  78. _IsVisibledExcel = false; //打印及预览时Excel显示
  79. _FormCaption = "打印预览";
  80. //应检查Excell进程是否已在运行,否则每次实例化一个,则Excell进程多一个。现在在Close()里进行强制垃圾回收,可以不检测了。
  81. try
  82. {
  83. _xlApp = new Excel.ApplicationClass();
  84. }
  85. catch(System.Exception ex)
  86. {
  87. throw new ExceptionExcelCreateInstance("创建Excel类实例时错误,详细信息:" + ex.Message);
  88. }
  89. _xlApp.DisplayAlerts = false;  //关闭程序建立的Excel文件时,不会提示是否要保存修改
  90. }
  91. #region 打开关闭
  92. /// <summary>
  93. /// 打开Excel,并建立默认的Workbooks。
  94. /// </summary>
  95. /// <returns></returns>
  96. public void Open()
  97. {
  98. //打开并新建立默认的Excel
  99. //Workbooks.Add([template]) As Workbooks
  100. try
  101. {
  102. _xlWorkbook = _xlApp.Workbooks.Add(oMissing);
  103. }
  104. catch(System.Exception ex)
  105. {
  106. throw new ExceptionExcelOpen("打开Excel时错误,详细信息:" + ex.Message);
  107. }
  108. }
  109. /// <summary>
  110. /// 根据现有工作薄模板打开,如果指定的模板不存在,则用默认的空模板
  111. /// </summary>
  112. /// <param name="p_templateFileName">用作模板的工作薄文件名</param>
  113. public void Open(string p_templateFileName)
  114. {
  115. if (System.IO.File.Exists(p_templateFileName))
  116. {
  117. //用模板打开
  118. //Workbooks.Add Template:="C:tpt.xlt"
  119. try
  120. {
  121. _xlWorkbook = _xlApp.Workbooks.Add(p_templateFileName);
  122. }
  123. catch(System.Exception ex)
  124. {
  125. throw new ExceptionExcelOpen("打开Excel时错误,详细信息:" + ex.Message);
  126. }
  127. }
  128. else
  129. {
  130. Open();
  131. }
  132. }
  133. /// <summary>
  134. /// 关闭
  135. /// </summary>
  136. public void Close()
  137. {
  138. _xlApp.Workbooks.Close();
  139. _xlWorkbook = null;
  140. _xlApp.Quit();
  141. _xlApp = null;
  142. oMissing = null;
  143. //强制垃圾回收,否则每次实例化Excel,则Excell进程多一个。
  144. System.GC.Collect();
  145. }
  146. #endregion
  147. #region PrintPreview()、Print()用Excel打印、预览,如果要显示Excel窗口,请设置IsVisibledExcel 
  148. /// <summary>
  149. /// 显示Excel
  150. /// </summary>
  151. public void ShowExcel()
  152. {
  153. _xlApp.Visible = true;
  154. }
  155. /// <summary>
  156. /// 用Excel打印预览,如果要显示Excel窗口,请设置IsVisibledExcel 
  157. /// </summary>
  158. public void PrintPreview()
  159. {
  160. _xlApp.Caption = _FormCaption;
  161. _xlApp.Visible = true;
  162. try
  163. {
  164. _xlApp.ActiveWorkbook.PrintPreview(oMissing);
  165. }
  166. catch{}
  167. _xlApp.Visible = this.IsVisibledExcel;
  168. }
  169. /// <summary>
  170. /// 用Excel打印,如果要显示Excel窗口,请设置IsVisibledExcel 
  171. /// </summary>
  172. public void Print()
  173. {
  174. _xlApp.Visible = this.IsVisibledExcel;
  175. Object oMissing = System.Reflection.Missing.Value;  //实例化参数对象
  176. try
  177. {
  178. _xlApp.ActiveWorkbook.PrintOut(oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing);
  179. }
  180. catch{}
  181. }
  182. #endregion
  183. #region 另存
  184. /// <summary>
  185. /// 另存。如果保存成功,则返回true,否则,如果保存不成功或者如果已存在文件但是选择了不替换也返回false
  186. /// </summary>
  187. /// <param name="p_fileName">将要保存的文件名</param>
  188. /// <param name="p_ReplaceExistsFileName">如果文件存在,则替换</param>
  189. public bool SaveAs(string p_fileName,bool p_ReplaceExistsFileName)
  190. {
  191. bool blnReturn = false;
  192. if (System.IO.File.Exists(p_fileName))
  193. {
  194. if (p_ReplaceExistsFileName)
  195. {
  196. try
  197. {
  198. System.IO.File.Delete(p_fileName);
  199. blnReturn = true;
  200. }
  201. catch(Exception ex)
  202. {
  203. string strErr = ex.Message; 
  204. }
  205. }
  206. }
  207. try
  208. {
  209. _xlApp.ActiveWorkbook.SaveCopyAs(p_fileName);
  210. blnReturn = true;
  211. }
  212. catch
  213. {
  214. blnReturn = false;
  215. }
  216. return blnReturn;
  217. }
  218. #endregion
  219. //核心函数,GetRange(),获取指定范围内的单元格
  220. /*
  221. public Excel.Range GetRange(int p_rowIndex,int p_colIndex)
  222. public Excel.Range GetRange(int p_rowIndex,string p_colChars)
  223. public Excel.Range GetRange(int p_startRowIndex,int p_startColIndex,int p_endRowIndex,int p_endColIndex)
  224. public Excel.Range GetRange(int p_startRowIndex,string p_startColChars,int p_endRowIndex,string p_endColChars)
  225. */
  226. #region GetRange,如Range("B10"),Range("C8:F11"),Range(2,10),Range(2,"A"),Range(3,8,6,11),Range(3,"A",6,"F")
  227. /// <summary>
  228. /// 获取指定单元格或指定范围内的单元格,行索引为从1开始的数字,最大65536,列索引为A~Z、AA~AZ、BA~BZ...HA~HZ、IA~IV的字母及组合,也可以是1-65536数字。
  229. /// </summary>
  230. /// <param name="p_rowIndex">单元格行索引,从1开始</param>
  231. /// <param name="p_colIndex">单元格列索引,从1开始,列索引也可以用字母A到Z或字母组合AA~AZ,最大IV的Excel字母索引</param>
  232. /// <returns></returns>
  233. public Excel.Range GetRange(int p_rowIndex,int p_colIndex)
  234. {
  235. //单个 Range(10,3).Select //第10行3列
  236. return GetRange(p_rowIndex,p_colIndex,p_rowIndex,p_colIndex);
  237. }
  238. /// <param name="p_colChars">单元格列字母及组合索引,从A开始</param>
  239. public Excel.Range GetRange(int p_rowIndex,string p_colChars)
  240. {
  241. //单个 Range("C10").Select //第10行3列
  242. return GetRange(p_rowIndex,p_colChars,p_rowIndex,p_colChars);
  243. }
  244. /// <param name="p_startRowIndex">指定单元范围起始行索引,从1开始</param>
  245. /// <param name="p_startColIndex">指定单元范围起始列数字索引,从1开始</param>
  246. /// <param name="p_endRowIndex">指定单元范围结束行索引</param>
  247. /// <param name="p_endColIndex">指定单元范围结束列数字索引</param>
  248. public Excel.Range GetRange(int p_startRowIndex,int p_startColIndex,int p_endRowIndex,int p_endColIndex)
  249. {
  250. Excel.Range range;
  251. range = _xlApp.get_Range(_xlApp.Cells[p_startRowIndex,p_startColIndex],_xlApp.Cells[p_endRowIndex,p_endColIndex]);
  252. return range;
  253. }
  254. /// <param name="p_startChars">指定单元范围起始列字母及组合索引</param>
  255. /// <param name="p_endChars">指定单元范围结束列字母及组合索引</param>
  256. public Excel.Range GetRange(int p_startRowIndex,string p_startColChars,int p_endRowIndex,string p_endColChars)
  257. {
  258. //矩形 Range("D8:F11").Select
  259. Excel.Range range;
  260. range = _xlApp.get_Range(p_startColChars + p_startRowIndex.ToString(),p_endColChars + p_endRowIndex.ToString());
  261. return range;
  262. }
  263. #endregion
  264. #region MergeCells(Excel.Range p_Range)合并单元格,合并后,默认居中
  265. /// <summary>
  266. /// 合并指定范围内单元格,合并后,默认居中
  267. /// </summary>
  268. /// <param name="p_Range"></param>
  269. public void MergeCells(Excel.Range p_Range)
  270. {
  271. p_Range.HorizontalAlignment = Excel.Constants.xlCenter;
  272. p_Range.VerticalAlignment = Excel.Constants.xlCenter;
  273. p_Range.WrapText = false;
  274. p_Range.Orientation = 0;
  275. p_Range.AddIndent = false;
  276. p_Range.IndentLevel = 0;
  277. p_Range.ShrinkToFit = false;
  278. //p_Range.ReadingOrder = Excel.Constants.xlContext;
  279. p_Range.MergeCells = false;
  280. p_Range.Merge(oMissing);
  281. //    With Selection
  282. //        .HorizontalAlignment = xlCenter
  283. //        .VerticalAlignment = xlCenter
  284. //        .WrapText = False
  285. //        .Orientation = 0
  286. //        .AddIndent = False
  287. //        .IndentLevel = 0
  288. //        .ShrinkToFit = False
  289. //        .ReadingOrder = xlContext
  290. //        .MergeCells = False
  291. //    End With
  292. //    Selection.Merge
  293. }
  294. #endregion
  295. #region 插入分页符,暂无实现
  296. /// <summary>
  297. /// 在指定的行上插入分页符
  298. /// </summary>
  299. /// <param name="p_rowIndex">行索引</param>
  300. public void InsertVPageBreaks(int p_rowIndex)
  301. {
  302. }
  303. public void InsertHPageBreaks(int p_colIndex)
  304. {
  305. }
  306. public void InsertHPageBreaks(string p_colChars)
  307. {
  308. }
  309. #endregion
  310. #region 插入整行、整列InsertRow(int p_rowIndex)、InsertColumn(int p_colIndex)、InsertColumn(string p_colChars)
  311. /// <summary>
  312. /// 在指定的行上插入一整行
  313. /// </summary>
  314. /// <param name="p_rowIndex">行索引</param>
  315. public void InsertRow(int p_rowIndex)
  316. {
  317. //    Rows("2:2").Select
  318. //    Selection.Insert Shift:=xlDown
  319. Excel.Range range;
  320. range = GetRange(p_rowIndex,"A");
  321. range.Select();
  322. //Excel2003支持两参数
  323. //range.EntireRow.Insert(oMissing,oMissing);
  324. //Excel2000支持一个参数,经过测试,用Interop.ExcelV1.3(Excel2000),可以正常运行在Excel2003中
  325. range.EntireRow.Insert(oMissing);
  326. }
  327. /// <summary>
  328. /// 用模板行在指定的行上插入,即Excel的插入复制单元格
  329. /// </summary>
  330. /// <param name="p_rowIndex"></param>
  331. /// <param name="p_templateRowIndex"></param>
  332. public void InsertRow(int p_rowIndex,int p_templateRowIndex)
  333. {
  334. Excel.Range range;
  335. range = (Excel.Range)_xlApp.Rows[p_templateRowIndex.ToString() + ":" + p_templateRowIndex.ToString(),oMissing];
  336. range.Select();
  337. range.Copy(oMissing);
  338. InsertRow(p_rowIndex);
  339. }
  340. /// <summary>
  341. /// 在指定的列上插入一整列
  342. /// </summary>
  343. /// <param name="p_colIndex">列索引</param>
  344. public void InsertColumn(int p_colIndex)
  345. {
  346. Excel.Range range;
  347. range = GetRange(1,p_colIndex);
  348. range.Select();
  349. //Excel2003支持两参数
  350. //range.EntireColumn.Insert(oMissing,oMissing);
  351. //Excel2000支持一个参数
  352. range.EntireColumn.Insert(oMissing);
  353. }
  354. /// <summary>
  355. /// 在指定的列上插入一整列
  356. /// </summary>
  357. /// <param name="p_colChars">列字母或组合</param>
  358. public void InsertColumn(string p_colChars)
  359. {
  360. Excel.Range range;
  361. range = GetRange(1,p_colChars);
  362. range.Select();
  363. //Excel2003支持两参数
  364. //range.EntireColumn.Insert(oMissing,oMissing);
  365. //Excel2000支持一个参数
  366. range.EntireColumn.Insert(oMissing);
  367. }
  368. #endregion
  369. #region 删除整行、整列DeleteRow(int p_rowIndex)、DeleteColumn(int p_colIndex)、DeleteColumn(string p_colChars)
  370. /// <summary>
  371. /// 删除指定的整行
  372. /// </summary>
  373. /// <param name="p_rowIndex">行索引</param>
  374. public void DeleteRow(int p_rowIndex)
  375. {
  376. Excel.Range range;
  377. range = GetRange(p_rowIndex,"A");
  378. range.Select();
  379. range.EntireRow.Delete(oMissing);
  380. }
  381. /// <summary>
  382. /// 删除指定的整列
  383. /// </summary>
  384. /// <param name="p_colIndex">列索引</param>
  385. public void DeleteColumn(int p_colIndex)
  386. {
  387. Excel.Range range;
  388. range = GetRange(1,p_colIndex);
  389. range.Select();
  390. range.EntireColumn.Delete(oMissing);
  391. }
  392. /// <summary>
  393. /// 删除指定的整列
  394. /// </summary>
  395. /// <param name="p_colChars">列字母或组合</param>
  396. public void DeleteColumn(string p_colChars)
  397. {
  398. Excel.Range range;
  399. range = GetRange(1,p_colChars);
  400. range.Select();
  401. range.EntireColumn.Delete(oMissing);
  402. }
  403. #endregion
  404. #region 设置行高列宽SetRowHeight(int p_rowIndex,float p_rowHeight)、SetColumnWidth(int p_colIndex,float p_colWidth)、SetColumnWidth(string p_colChars,float p_colWidth)
  405. public void SetRowHeight(int p_rowIndex,float p_rowHeight)
  406. {
  407. Excel.Range range;
  408. range = GetRange(p_rowIndex,"A");
  409. range.Select();
  410. range.RowHeight = p_rowHeight;
  411. }
  412. public void SetColumnWidth(int p_colIndex,float p_colWidth)
  413. {
  414. Excel.Range range;
  415. range = GetRange(1,p_colIndex);
  416. range.Select();
  417. range.ColumnWidth = p_colWidth;
  418. }
  419. public void SetColumnWidth(string p_colChars,float p_colWidth)
  420. {
  421. Excel.Range range;
  422. range = GetRange(1,p_colChars);
  423. range.Select();
  424. range.ColumnWidth = p_colWidth;
  425. }
  426. #endregion 
  427. #region SetFont(Excel.Range p_Range,Font p_Font[,Color p_color])
  428. public void SetFont(Excel.Range p_Range,Font p_Font)
  429. {
  430. SetFont(p_Range,p_Font,Color.Black);
  431. }
  432. public void SetFont(Excel.Range p_Range,Font p_Font,Color p_color)
  433. {
  434. p_Range.Select();
  435. p_Range.Font.Name = p_Font.Name;
  436. p_Range.Font.Size = p_Font.Size;
  437. //p_Range.Font.Color = p_color;
  438. p_Range.Font.Bold = p_Font.Bold;
  439. p_Range.Font.Italic = p_Font.Italic;
  440. p_Range.Font.Strikethrough = p_Font.Strikeout;
  441. p_Range.Font.Underline = p_Font.Underline;
  442. }
  443. #endregion 
  444. #region SetBordersEdge 设置指定范围边框(左、顶、右、底、往右下对角线、往右上对角线、内部水平线、内部垂直线、无线)线,并可指定线条的样式(无、虚线、点线等)及线粗细
  445. /// <summary>
  446. /// 用连续的普通粗细的线设置指定范围内的边界
  447. /// </summary>
  448. /// <param name="p_Range"></param>
  449. /// <param name="p_BordersEdge"></param>
  450. public void SetBordersEdge(Excel.Range p_Range,BordersEdge p_BordersEdge)
  451. {
  452. SetBordersEdge(p_Range,p_BordersEdge,BordersLineStyle.xlContinuous,BordersWeight.xlThin);
  453. }
  454. public void SetBordersEdge(Excel.Range p_Range,BordersEdge p_BordersEdge,BordersLineStyle p_BordersLineStyle,BordersWeight p_BordersWeight)
  455. {
  456. p_Range.Select();
  457. Excel.Border border = null;
  458. switch(p_BordersEdge)
  459. {
  460. //左右顶底的线
  461. case BordersEdge.xlLeft:
  462. border = p_Range.Borders[Excel.XlBordersIndex.xlEdgeLeft];
  463. break;
  464. case BordersEdge.xlRight:
  465. border = p_Range.Borders[Excel.XlBordersIndex.xlEdgeRight];
  466. break;
  467. case BordersEdge.xlTop:
  468. border =p_Range.Borders[Excel.XlBordersIndex.xlEdgeTop];
  469. break;
  470. case BordersEdge.xlBottom:
  471. border =p_Range.Borders[Excel.XlBordersIndex.xlEdgeBottom];
  472. break;
  473. //对角线
  474. case BordersEdge.xlDiagonalDown:
  475. border =p_Range.Borders[Excel.XlBordersIndex.xlDiagonalDown];
  476. break;
  477. case BordersEdge.xlDiagonalUp:
  478. border =p_Range.Borders[Excel.XlBordersIndex.xlDiagonalUp];
  479. break;
  480. //边框内部是横竖线(不包括边框)
  481. case BordersEdge.xlInsideHorizontal:
  482. border =p_Range.Borders[Excel.XlBordersIndex.xlInsideHorizontal];
  483. break;
  484. case BordersEdge.xlInsideVertical:
  485. border =p_Range.Borders[Excel.XlBordersIndex.xlInsideVertical];
  486. break;
  487. case BordersEdge.xlLineStyleNone:
  488. //所先范围内所有线都没有
  489. p_Range.Borders[Excel.XlBordersIndex.xlDiagonalDown].LineStyle = Excel.XlLineStyle.xlLineStyleNone; //xlNone
  490. p_Range.Borders[Excel.XlBordersIndex.xlDiagonalUp].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
  491. p_Range.Borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
  492. p_Range.Borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
  493. p_Range.Borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
  494. p_Range.Borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
  495. p_Range.Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
  496. p_Range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
  497. break;
  498. }
  499. if (border != null)
  500. {
  501. //XlLineStyle
  502. Excel.XlLineStyle mXlLineStyle = Excel.XlLineStyle.xlContinuous;
  503. switch(p_BordersLineStyle)
  504. {
  505. case BordersLineStyle.xlContinuous:
  506. mXlLineStyle = Excel.XlLineStyle.xlContinuous;
  507. break;
  508. case BordersLineStyle.xlDash:
  509. mXlLineStyle = Excel.XlLineStyle.xlDash;
  510. break;
  511. case BordersLineStyle.xlDashDot:
  512. mXlLineStyle = Excel.XlLineStyle.xlDashDot;
  513. break;
  514. case BordersLineStyle.xlDashDotDot:
  515. mXlLineStyle = Excel.XlLineStyle.xlDashDotDot;
  516. break;
  517. case BordersLineStyle.xlDot:
  518. mXlLineStyle = Excel.XlLineStyle.xlDot;
  519. break;
  520. case BordersLineStyle.xlDouble:
  521. mXlLineStyle = Excel.XlLineStyle.xlDouble;
  522. break;
  523. case BordersLineStyle.xlLineStyleNone:
  524. mXlLineStyle = Excel.XlLineStyle.xlLineStyleNone;
  525. break;
  526. case BordersLineStyle.xlSlantDashDot:
  527. mXlLineStyle = Excel.XlLineStyle.xlSlantDashDot;
  528. break;
  529. }
  530. border.LineStyle = mXlLineStyle;
  531. //XlBorderWeight
  532. Excel.XlBorderWeight mXlBorderWeight = Excel.XlBorderWeight.xlThin;
  533. switch(p_BordersWeight)
  534. {
  535. case BordersWeight.xlHairline:
  536. mXlBorderWeight = Excel.XlBorderWeight.xlHairline;
  537. break;
  538. case BordersWeight.xlMedium:
  539. mXlBorderWeight = Excel.XlBorderWeight.xlMedium;
  540. break;
  541. case BordersWeight.xlThick:
  542. mXlBorderWeight = Excel.XlBorderWeight.xlThick;
  543. break;
  544. case BordersWeight.xlThin:
  545. mXlBorderWeight = Excel.XlBorderWeight.xlThin;
  546. break;
  547. }
  548. border.Weight = mXlBorderWeight;
  549. }//End IF
  550. }
  551. #endregion 
  552. #region ClearBordersEdge,清除指定范围内的所有线,以SetBordersEdge设置边框为基础
  553. public void ClearBordersEdge(Excel.Range p_Range)
  554. {
  555. SetBordersEdge(p_Range,BordersEdge.xlLineStyleNone);
  556. }
  557. #endregion
  558. #region GetCellText(p_Range])
  559. public string GetCellText(Excel.Range p_Range)
  560. {
  561. string strReturn = "";
  562. strReturn = p_Range.Text.ToString();
  563. return strReturn;
  564. }
  565. #endregion
  566. #region SetCellText(Range)
  567. public void SetCellText(Excel.Range p_Range,string p_text)
  568. {
  569. p_Range.Cells.FormulaR1C1 = p_text;
  570. }
  571. #endregion
  572. }//End class
  573. }//End Namespace