前段时间老大让我做一个项目,要用到Excel操作,将大批十六进制数据分析完数据结构后提取到Excel中,再进行一定处理,然后写工具转换为一定格式的txt文件,最后转换为DB文件。我也是头一次接触这个,先在网上查了些资料,然后进行总结,经过一段时间后,我将原来的对Excel的操作封装成类,结合网上的资料和自己一段时间的实践,才有这些结果,还在进一步完善,因为我是根据需求一步一步完善的。
//下面是.h头文件中的内容
#include "excel.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 MyBackGroundStyle { public: //背景颜色 long Color; //背景图案 short Pattern; //背景图案颜色 long PatternColor; //透明与否 BOOL transparent; //构造函数 MyBackGroundStyle(); }; class MyFont { public: MyFont(); //名字 CString Name; long size; long ForeColor; BOOL Bold; //斜体 BOOL Italic; //中间线 BOOL StrikeThrough; BOOL Shadow; //下标 BOOL Subscript; //上标 BOOL Superscript; short UnderLine; }; class MyAlignment { public: short HorizontalAlignment; short VerticalAlignment; MyAlignment(); }; class MyNumberFormat { public: MyNumberFormat(); //设置参数 CString strValue; CString GetTextSetup(); CString GetNumberSetup(BOOL bSeparator,int iNumDecimal); //bInChinese:TRUE-"¥",FALSE-"$" CString GetMoneySetup(BOOL bInChinese,int iNumDecimal); CString GetDateSetup(BOOL bInChinese); CString GetTimeSetup(BOOL bInChinese); CString GetGeneralSetup(); CString GetSpecialNumberSetup(BOOL bInChinese); CString GetPercentNumberSetup(int iNumDecimal); CString GetFractionNumberSetup(int DownSum,int DownNum); CString GetScientificNumberSetup(int iNumDecimal); CString GetPostalcodeSetup(int Num); CString GetDateTimeSetup(BOOL bInChinese); }; class CMyExcel { public: _Application MyApp; _Workbook MyBook; _Worksheet MySheet; Workbooks MyBooks; Worksheets MySheets; Range MyRange; CString strFilePath; CMyExcel(); virtual ~CMyExcel(); BOOL Open(); BOOL Open(CString strFile); BOOL OpenSheet(CString strSheet); BOOL SetItemText(long Row,long Col,CString strText); CString GetItemText(long Row,long Col); void Exit(); void SetVisible(BOOL bVisible); BOOL IsFileExist(CString strFn,BOOL bDir); void Save(); void SaveAs(CString strPath); void AddSheet(CString strSheet); void DeleteSheet123(); void GetRange(CString strBegin,CString strEnd); void AutoColFit(); void AutoRowFit(); void SetWrapText(BOOL bTrue); void SetFont(MyFont font); void GetAllRange(); void SetMergeCells(BOOL bTrue); void SetBackGroundStyle(MyBackGroundStyle BackStyle); void SetBorderLine(short position,MyBorder Border); void SetAlignment(MyAlignment XMyAlignment); long GetRows(); long GetCols(); void SetNumberFormat(MyNumberFormat XNumberFormat); void SetColumnWidth(int iWidth); void SetRowHeight(int iHeight); void PrintOut(short numCopy); void PrePrintOut(BOOL bEnable); void InsertPicture(CString strFilePath); void SetBackPicture(CString strFilePath); long Find(CString str); };
VC++实现对Excel操作(1)
最新推荐文章于 2023-07-08 08:40:31 发布