MyExcel.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. //使用说明:
  2. //此类的设计方便了VC对EXCEL的操作。主要功能如下:
  3. // A.打开EXCEL文档进行修改和保存
  4. // B.新建EXCEL文档进行操作存储
  5. // B.读取和填写EXCEL中的数据
  6. // C.设置EXCEL中边框的参数
  7. // D.设置EXCEL中背景颜色的参数
  8. // E.打印和预览
  9. // F.自动回收内存
  10. // G.在显示之后,此类将自动关闭不能进行其它相关的操作
  11. //---------------------------------------------------------设计人:牛文平
  12. #include "excel9.h"
  13. #include <comdef.h>
  14. //下滑线的种类
  15. #define xlUnderlineStyleDouble -4119
  16. #define xlUnderlineStyleDoubleAccounting 5
  17. #define xlUnderlineStyleNone -4142
  18. #define xlUnderlineStyleSingle 2
  19. #define xlUnderlineStyleSingleAccounting 4
  20. //边框方位
  21. #define xlDiagonalDown 5
  22. #define xlDiagonalUp 6
  23. #define xlEdgeBottom 9
  24. #define xlEdgeLeft 7
  25. #define xlEdgeRight 10
  26. #define xlEdgeTop 8
  27. #define xlInsideHorizontal 12
  28. #define xlInsideVertical 11
  29. //边框划线类型
  30. #define xlContinuous 1
  31. #define xlDash -4115
  32. #define xlDashDot 4
  33. #define xlDashDotDot 5
  34. #define xlDot -4118
  35. #define xlDouble -4119
  36. #define xlLineStyleNone -4142
  37. #define xlNone -4142
  38. #define xlSlantDashDot 13
  39. //字体水平对齐方式
  40. #define xlGeneral 1
  41. #define xlCenter -4108
  42. #define xlLeft -4131
  43. #define xlRight -4152
  44. #define xlFill 5
  45. #define xlJustify -4130
  46. //字体垂直对齐方式
  47. #define xlTop -4160
  48. #define xlBottom -4107
  49. //边框划线的粗细
  50. #define xlHairline 1
  51. #define xlMedium -4138
  52. #define xlThick 4
  53. #define xlThin 2
  54. //背景图案的类型
  55. #define xlSolid 1
  56. #define xlGray8 18
  57. #define xlGray75 -4126
  58. #define xlGray50 -4125
  59. #define xlGray25 -4124
  60. #define xlGray16 17
  61. #define xlHorizontal -4128
  62. #define xlVertical -4166
  63. #define xlDown -4121
  64. #define xlUp -4162
  65. #define xlChecker 9
  66. #define xlSemiGray75 10
  67. #define xlLightHorizontal 11
  68. #define xlLightVertical 12
  69. #define xlLightDown 13
  70. #define xlLightUp 14
  71. #define xlGrid 15
  72. #define xlCrissCross 16
  73. //边框设置参数类
  74. class MyBorder
  75. {
  76. public:
  77. //线条形状
  78. short LineStyle;
  79. //粗线
  80. short Weight;
  81. //颜色
  82. long Color;
  83. //构造函数
  84. MyBorder();
  85. };
  86. //背景设置参数类
  87. class MyBackStyle
  88. {
  89. public:
  90. //背景颜色
  91. long Color;
  92. //背景图案
  93. short Pattern;
  94. //背景图案颜色
  95. long PatternColor;
  96. //透明不透明
  97. BOOL transparent;
  98. //构造函数
  99. MyBackStyle();
  100. };
  101. //字体设置参数类
  102. class MyFont
  103. {
  104. public:
  105. //名字
  106. CString Name;
  107. //大小
  108. long size;
  109. //前景
  110. long ForeColor;
  111. //粗体
  112. BOOL Bold;
  113. //斜体
  114. BOOL Italic;
  115. //中间线
  116. BOOL Strikethrough;
  117. //阴影
  118. BOOL Shadow;
  119. //下标
  120. BOOL Subscript;
  121. //上标
  122. BOOL Superscricp;
  123. //下划线
  124. short Underline;
  125. //构造函数
  126. MyFont();
  127. };
  128. //文字对齐方式设置参数类
  129. class MyAlignment
  130. {
  131. public:
  132. //水平对齐
  133. short HorizontalAlignment;
  134. //垂直对齐
  135. short VerticalAlignment;
  136. //构造函数
  137. MyAlignment();
  138. };
  139. //列数据类型的设置参数类
  140. class MyNumberFormat
  141. {
  142. public:
  143. MyNumberFormat();
  144. //设置参数
  145. CString strValue;
  146. //返回文本类型的设置
  147. CString GetText();
  148. //返回数字格式的设置
  149. //blnBox: 使用分隔符 RightSum: 小数位数
  150. CString GetNumber(BOOL blnBox,int RightSum);
  151. //返回货币格式的设置
  152. //blnChinese: TURE:"¥",FALSE:"$"
  153. //RightSum: 小数位数
  154. CString GetMoney(BOOL blnChinese,int RightSum);
  155. //返回日期格式的设置
  156. //blnChinese: TURE:"年月日",FALSE:"-"
  157. CString GetDate(BOOL blnChinese);
  158. //返回时间格式的设置
  159. //blnChinese: TURE:"时分秒",FALSE:":"
  160. CString GetTime(BOOL blnChinese);
  161. //返回常规设置
  162. CString GetGeneral();
  163. //返回特殊数字的设置
  164. //blnChinese: TURE:大写,FALSE:小写
  165. CString GetDBNumber(BOOL blnChinese);
  166. //返回百分数的设置
  167. //RightSum: 小数位数
  168. CString GetPercentNumBer(int RightSum);
  169. //返回分数的设置
  170. //DownSum:分母位数 DownNum(0): 固定分母数(0)
  171. CString GetFractionNumBer(int DownSum,int DownNum);
  172. //返回科学计数的设置
  173. //RightSum: 小数位数
  174. CString GetTechNumBer(int RightSum);
  175. //返回6位邮政编码格式
  176. //Sum: 固定邮政编码的位数
  177. CString GetPost(int Sum);
  178. //返回日期加时间的设置
  179. //blnChinese: TURE:"年月日时分秒",FALSE:"-:"
  180. CString GetDateTime(BOOL blnChinese);
  181. };
  182. class CMyExcel
  183. {
  184. public:
  185. //Excel的应用
  186. _Application MyApp;
  187. _Workbook MyBook;
  188. _Worksheet MySheet;
  189. Workbooks MyBooks;
  190. Worksheets MySheets;
  191. Range MyRange;
  192. CString strFilePath;
  193. //构造函数
  194. CMyExcel();
  195. //析构函数
  196. ~CMyExcel();
  197. //打开新的Excel文件
  198. BOOL Open();
  199. //打开strFile文件
  200. BOOL Open(CString strFile);
  201. //打开名为strSheet的表
  202. BOOL OpenSheet(CString strSheet);
  203. //设置(ROW,COL)的字符strText
  204. BOOL SetItemText(long Row,long Col,CString strText);
  205. //取得(ROW,COL)的字符
  206. CString GetItemText(long Row,long Col);
  207. //退出excel
  208. void Exit();
  209. //显示excel
  210. void SetVisible(BOOL blnVisible);
  211. //查找此文件是否存在
  212. BOOL IsFileExist(CString strFn, BOOL bDir);
  213. //自动保存(针对打开已经存在的文件)
  214. void Save();
  215. //保存为strPath
  216. void SaveAs(CString strPath);
  217. //添加新的表
  218. void AddSheet(CString strSheet);
  219. //得到新的选择区域
  220. void GetRange(CString strBegin,CString strEnd);
  221. //列自动展开
  222. void AutoColFit();
  223. //行自动展开
  224. void AutoRowFit();
  225. //设置自动换行
  226. void SetWrapText(BOOL blnTrue);
  227. //设置字体
  228. void SetFont(MyFont font);
  229. //得到整个区域
  230. void AutoRange();
  231. //合并单元格
  232. void SetMergeCells(BOOL blnTrue);
  233. //设置背景
  234. void SetBackStyle(MyBackStyle BackStyle);
  235. //设置边框
  236. void SetBorderLine(short Xposition,MyBorder XBorder);
  237. //设置对齐方式
  238. void SetAlignment(MyAlignment XMyAlignment);
  239. //得到列数
  240. long GetRowS();
  241. //得到行数
  242. long GetColS();
  243. //设置数据的类型
  244. void SetNumberFormat(MyNumberFormat XNumberFormat);
  245. //设置列宽
  246. void SetColumnWidth(int intWidth);
  247. //设置行高
  248. void SetRowHeight(int intHeight);
  249. //打印
  250. //CopySum:打印的份数
  251. void PrintOut(short CopySum);
  252. //打印预览
  253. //blnEnable:TRUE-允许修改 FALSE-不允许
  254. void PrePrintOut(BOOL blnEnable);
  255. //插入图片
  256. //strFilePath:文件名路径
  257. void InsertPicture(CString strFilePath);
  258. //设置背景图片
  259. //strFilePath:文件名路径
  260. void SetBackPicture(CString strFilePath);
  261. //返回当前程序所在路径
  262. CString GetAppPath();
  263. //////////////////////////////////////////////////////增加函数///////////////////////////////////
  264. //判断这行是不是空行
  265. bool IsRowEmpty( int iRow );
  266. //判断Excel软件是否已经安装
  267. bool IsExistExcel();
  268. };