CExcelManager--操作Excel表格的类

来源:互联网 发布:js 浮点数计算误差 编辑:程序博客网 时间:2024/06/09 14:34

#pragma once// write by: Devil Lee// date: 2014.11.19// version: 1.0.1.0#include "CApplication.h"#include "CWorkbook.h"#include "CWorkbooks.h"#include "CWorksheet.h"#include "CWorksheets.h"#include "CRange.h"#include "comdef.h"#include <vector>using namespace std;enum Return_Code{RET_no_excel = -2,RET_app_is_not_open = -3,RET_excel_is_not_open = -4,RET_sheet_is_not_open = -5,RET_sheetname_exists = -6,RET_outof_sheet_count = -7,RET_outof_row_count = -8,RET_outof_col_count = -8,RET_fail_open = -1,RET_fail_delete = -1,RET_fail_close = -1,RET_fail_set = -1,RET_fail_add = -1,RET_is_not_string = -1,RET_is_not_int = -1,RET_success_open = 0,RET_success_delete = 0,RET_success_close = 0,RET_success_set = 0,RET_success_add = 0,RET_is_string = 0,RET_is_int = 0,};class CExcelManager{public:CExcelManager();// call InitApp()~CExcelManager();voidInitApp();// initialize com, and start excelvoidReleaseApp();// excel must be released after use. This function will call CloseSheet, CloseExcelint OpenExcel(CString pathName);// open excel which name is ...int     CloseExcel();// close opened excelCString GetExcelName();voidShowExcel(BOOL bShow);// show data in excelint OpenSheet(int index);int OpenSheet(CString name);voidCloseSheet();int AddSheet(CString name);// create and load new sheet which will be added to the leftint DeleteSheet(int index);// delete sheet which index is ...int DeleteSheet(CString name);// delete sheet which name is ...CStringGetSheetName(int index);int SetSheetName(int index, CString name);// set sheet name which index is ...intGetSheetCount();// get all sheet number countBOOLSheetNameExists(CString name);// return TRUE: if sheet name aready exist, otherwise: return FALSEint DeleteCurSheet();// delete the open sheetint     SetCurSheetName(CString name);  // set cur sheet name to ...CString GetCurSheetName();// get cur sheet nameCString GetCellName(int row, int col);// get cell name such as A8CStringGetCellString(int row, int col);// get cell data in stringintGetCellInt(int row, int col);// get cell data in intdoubleGetCellDouble(int row, int col);// unnecessaryintGetRowIndex(int col, CString val);intGetColIndex(int row, CString val);voidGetCellIndex(CString val, int& row, int& col);int GetNextRowIndex(int startRow, int col, BOOL bValid);int GetNextColIndex(int row, int col, BOOL bValid);int SetCellString(int row, int col, CString val);// write string to cellint SetCellInt(int row, int col, int val);// write int to cellvoidSetColumnWidth(int col, int width);// imperfect, it will change all the column widthintIsCellString(long row, long col);// tell if it is string in cellintIsCellInt(long row, long col);// tell if it is int int cellintMergeRange(int startRow, int startCol, int endRow, int endCol); // added by Chen'gangintGetRowCount();// get all column number countintGetColumnCount();// get all row number countvoidGetRowData(int row, vector<CString>& data, BOOL bValid = TRUE, int startCol = 1);voidGetColumnData(int col, vector<CString>& data, BOOL bValid = TRUE, int startRow = 1);void    SaveAs(CString pathName);CString GetCurVersion();// return your excel version, such as: 2007,2003,etcprivate:COleVariant GetCell(int row, int col);intOpenSheet(char* name);char*GetColumnName(int col);BOOL m_bInit;BOOL m_bStart;BOOL m_bOpenExcel;BOOL m_bOpenSheet;BOOL m_bDeleteSheet;CString m_pathName;CWorkbooks   m_workbooks;CWorkbook    m_workbook;CWorksheets  m_worksheets;CWorksheet   m_worksheet;CRange       m_range;CApplication m_app;// AnsiתUnicodeint AnsiToUnicode(char *szTemp, wchar_t* wStr, int size);wchar_t* AnsiToUnicode(char *szTemp);// UnicodeתAnsiint UnicodeToAnsi(wchar_t *wStr, char* szTemp, int size);char* UnicodeToAnsi(wchar_t *wStr); };

花了点点时间写的。欢迎使用。。。

下载地址:(今天上传不了,改天有空上传源代码)



0 0