123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- //使用说明:
- //此类的设计方便了VC对EXCEL的操作。主要功能如下:
- // A.打开EXCEL文档进行修改和保存
- // B.新建EXCEL文档进行操作存储
- // B.读取和填写EXCEL中的数据
- // C.设置EXCEL中边框的参数
- // D.设置EXCEL中背景颜色的参数
- // E.打印和预览
- // F.自动回收内存
- // G.在显示之后,此类将自动关闭不能进行其它相关的操作
- //---------------------------------------------------------设计人:牛文平
- #include "excel9.h"
- #include <comdef.h>
- //下滑线的种类
- #define xlUnderlineStyleDouble -4119
- #define xlUnderlineStyleDoubleAccounting 5
- #define xlUnderlineStyleNone -4142
- #define xlUnderlineStyleSingle 2
- #define xlUnderlineStyleSingleAccounting 4
- //边框方位
- #define xlDiagonalDown 5
- #define xlDiagonalUp 6
- #define xlEdgeBottom 9
- #define xlEdgeLeft 7
- #define xlEdgeRight 10
- #define xlEdgeTop 8
- #define xlInsideHorizontal 12
- #define xlInsideVertical 11
- //边框划线类型
- #define xlContinuous 1
- #define xlDash -4115
- #define xlDashDot 4
- #define xlDashDotDot 5
- #define xlDot -4118
- #define xlDouble -4119
- #define xlLineStyleNone -4142
- #define xlNone -4142
- #define xlSlantDashDot 13
- //字体水平对齐方式
- #define xlGeneral 1
- #define xlCenter -4108
- #define xlLeft -4131
- #define xlRight -4152
- #define xlFill 5
- #define xlJustify -4130
- //字体垂直对齐方式
- #define xlTop -4160
- #define xlBottom -4107
- //边框划线的粗细
- #define xlHairline 1
- #define xlMedium -4138
- #define xlThick 4
- #define xlThin 2
- //背景图案的类型
- #define xlSolid 1
- #define xlGray8 18
- #define xlGray75 -4126
- #define xlGray50 -4125
- #define xlGray25 -4124
- #define xlGray16 17
- #define xlHorizontal -4128
- #define xlVertical -4166
- #define xlDown -4121
- #define xlUp -4162
- #define xlChecker 9
- #define xlSemiGray75 10
- #define xlLightHorizontal 11
- #define xlLightVertical 12
- #define xlLightDown 13
- #define xlLightUp 14
- #define xlGrid 15
- #define xlCrissCross 16
- //边框设置参数类
- class MyBorder
- {
- public:
- //线条形状
- short LineStyle;
- //粗线
- short Weight;
- //颜色
- long Color;
- //构造函数
- MyBorder();
- };
- //背景设置参数类
- class MyBackStyle
- {
- public:
- //背景颜色
- long Color;
- //背景图案
- short Pattern;
- //背景图案颜色
- long PatternColor;
- //透明不透明
- BOOL transparent;
- //构造函数
- MyBackStyle();
- };
- //字体设置参数类
- class MyFont
- {
- public:
- //名字
- CString Name;
- //大小
- long size;
- //前景
- long ForeColor;
- //粗体
- BOOL Bold;
- //斜体
- BOOL Italic;
- //中间线
- BOOL Strikethrough;
- //阴影
- BOOL Shadow;
- //下标
- BOOL Subscript;
- //上标
- BOOL Superscricp;
- //下划线
- short Underline;
- //构造函数
- MyFont();
- };
- //文字对齐方式设置参数类
- class MyAlignment
- {
- public:
- //水平对齐
- short HorizontalAlignment;
- //垂直对齐
- short VerticalAlignment;
- //构造函数
- MyAlignment();
- };
- //列数据类型的设置参数类
- class MyNumberFormat
- {
- public:
- MyNumberFormat();
- //设置参数
- CString strValue;
- //返回文本类型的设置
- CString GetText();
- //返回数字格式的设置
- //blnBox: 使用分隔符 RightSum: 小数位数
- CString GetNumber(BOOL blnBox,int RightSum);
- //返回货币格式的设置
- //blnChinese: TURE:"¥",FALSE:"$"
- //RightSum: 小数位数
- CString GetMoney(BOOL blnChinese,int RightSum);
- //返回日期格式的设置
- //blnChinese: TURE:"年月日",FALSE:"-"
- CString GetDate(BOOL blnChinese);
- //返回时间格式的设置
- //blnChinese: TURE:"时分秒",FALSE:":"
- CString GetTime(BOOL blnChinese);
- //返回常规设置
- CString GetGeneral();
- //返回特殊数字的设置
- //blnChinese: TURE:大写,FALSE:小写
- CString GetDBNumber(BOOL blnChinese);
- //返回百分数的设置
- //RightSum: 小数位数
- CString GetPercentNumBer(int RightSum);
- //返回分数的设置
- //DownSum:分母位数 DownNum(0): 固定分母数(0)
- CString GetFractionNumBer(int DownSum,int DownNum);
- //返回科学计数的设置
- //RightSum: 小数位数
- CString GetTechNumBer(int RightSum);
- //返回6位邮政编码格式
- //Sum: 固定邮政编码的位数
- CString GetPost(int Sum);
- //返回日期加时间的设置
- //blnChinese: TURE:"年月日时分秒",FALSE:"-:"
- CString GetDateTime(BOOL blnChinese);
- };
- class CMyExcel
- {
- public:
- //Excel的应用
- _Application MyApp;
- _Workbook MyBook;
- _Worksheet MySheet;
- Workbooks MyBooks;
- Worksheets MySheets;
- Range MyRange;
- CString strFilePath;
- //构造函数
- CMyExcel();
- //析构函数
- ~CMyExcel();
- //打开新的Excel文件
- BOOL Open();
- //打开strFile文件
- BOOL Open(CString strFile);
- //打开名为strSheet的表
- BOOL OpenSheet(CString strSheet);
- //设置(ROW,COL)的字符strText
- BOOL SetItemText(long Row,long Col,CString strText);
- //取得(ROW,COL)的字符
- CString GetItemText(long Row,long Col);
- //退出excel
- void Exit();
- //显示excel
- void SetVisible(BOOL blnVisible);
- //查找此文件是否存在
- BOOL IsFileExist(CString strFn, BOOL bDir);
- //自动保存(针对打开已经存在的文件)
- void Save();
- //保存为strPath
- void SaveAs(CString strPath);
- //添加新的表
- void AddSheet(CString strSheet);
- //得到新的选择区域
- void GetRange(CString strBegin,CString strEnd);
- //列自动展开
- void AutoColFit();
- //行自动展开
- void AutoRowFit();
- //设置自动换行
- void SetWrapText(BOOL blnTrue);
- //设置字体
- void SetFont(MyFont font);
- //得到整个区域
- void AutoRange();
- //合并单元格
- void SetMergeCells(BOOL blnTrue);
- //设置背景
- void SetBackStyle(MyBackStyle BackStyle);
- //设置边框
- void SetBorderLine(short Xposition,MyBorder XBorder);
- //设置对齐方式
- void SetAlignment(MyAlignment XMyAlignment);
- //得到列数
- long GetRowS();
- //得到行数
- long GetColS();
- //设置数据的类型
- void SetNumberFormat(MyNumberFormat XNumberFormat);
- //设置列宽
- void SetColumnWidth(int intWidth);
- //设置行高
- void SetRowHeight(int intHeight);
- //打印
- //CopySum:打印的份数
- void PrintOut(short CopySum);
- //打印预览
- //blnEnable:TRUE-允许修改 FALSE-不允许
- void PrePrintOut(BOOL blnEnable);
- //插入图片
- //strFilePath:文件名路径
- void InsertPicture(CString strFilePath);
- //设置背景图片
- //strFilePath:文件名路径
- void SetBackPicture(CString strFilePath);
- //返回当前程序所在路径
- CString GetAppPath();
- //////////////////////////////////////////////////////增加函数///////////////////////////////////
- //判断这行是不是空行
- bool IsRowEmpty( int iRow );
- //判断Excel软件是否已经安装
- bool IsExistExcel();
- };
|