BasicExcel API介紹
一個用STL C++寫的讀寫Excel檔案的類,是CSpreadSheet作者封裝的,與CSpreadSheet的區別:不依賴ODBC,而CSpreadSheet依賴ODBC,需要MFC庫的支援,不能跨平臺。
BasicExcel的限制:
1)不支援格式化;
2)不支援公式;
3)不支援圖表;
4)不支援Unicode UTF-32;
5)中文支援不好;
class BasicExcel
void New(int sheets=3) |
建立一個新工作薄,預設3張工作表 |
bool Load(const char* filename) |
載入一個已存在的工作薄檔案 |
bool Save() |
儲存當前工作薄到已載入檔案 |
bool SaveAs(const char* filename) |
儲存當前工作薄到一個新檔案 |
size_t GetTotalWorkSheets() |
獲取當前工作薄的工作表數目 |
BasicExcelWorksheet* GetWorksheet(size_t sheetIndex) BasicExcelWorksheet* GetWorksheet(const char* name) BasicExcelWorksheet* GetWorksheet(const wchar_t* name) |
獲取指定索引的工作表物件,索引從0開始,索引無效則返回值為NULL 獲取指定名稱的工作表物件,名稱無效則返回值為NULL |
BasicExcelWorksheet* AddWorksheet(int sheetIndex=-1)
BasicExcelWorksheet* AddWorksheet(const char* name, int sheetIndex=-1) BasicExcelWorksheet* AddWorksheet(const wchar_t* name, int sheetIndex=-1) |
新增指定索引的工作表,名稱預設為SheetX,X從1開始,如果sheetIndex==-1,則預設新增到最後一個位置
新增指定名稱和索引的工作表,如果sheetIndex==-1,則預設新增到最後一個位置 |
bool DeleteWorksheet(size_t sheetIndex) bool DeleteWorksheet(const char* name) bool DeleteWorksheet(const wchar_t* name) |
刪除指定索引或名稱的工作表 |
char* GetAnsiSheetName(size_t sheetIndex) wchar_t* GetUnicodeSheetName(size_t sheetIndex) bool GetSheetName(size_t sheetIndex, char* name) bool GetSheetName(size_t sheetIndex, wchar_t* name) |
獲取指定索引的工作表名稱 |
bool RenameWorksheet(size_t sheetIndex, const char* to) bool RenameWorksheet(size_t sheetIndex, const wchar_t* to) bool RenameWorksheet(const char* from, const char* to) bool RenameWorksheet(const wchar_t* from, const wchar_t* to) |
重新命名指定索引或名稱的工作表 |
class BasicExcelWorksheet
char* GetAnsiSheetName() wchar_t* GetUnicodeSheetName() bool GetSheetName(char* name) bool GetSheetName(wchar_t* name) |
獲取當前工作表的名稱 |
bool Rename(const char* to) bool Rename(const wchar_t* to) |
重新命名當前工作表 |
void Print(ostream& os, char delimiter=',', char textQualifier='\0') |
輸出整張工作表到指定輸出流,指定列分隔字元和文字限定符 指定列分隔符為','和文字限定符為'\"',該函式可以用來儲存當前工作表為CSV格式 |
size_t GetTotalRows() |
獲取當前工作表的總行數 |
size_t GetTotalCols() |
獲取當前工作表的總列數 |
BasicExcelCell* Cell(size_t row, size_t col) |
獲取指定行、列的單元格物件,行、列值從0開始,如果行值超過65535或者列值超過255則返回NULL |
bool EraseCell(size_t row, size_t col) |
清空指定行、列的單元格物件的內容 |
class BasicExcelCell
int Type() const |
獲取單元格值型別,包括以下值: |
bool Get(int& val) const bool Get(double& val) const bool Get(char* str) const bool Get(wchar_t* str) const |
從當前單元格獲取指定型別的內容 |
size_t GetStringLength() |
獲取當前單元格字串長度 |
int GetInteger() const double GetDouble() const const char* GetString() const const wchar_t* GetWString() const |
從當前單元格獲取指定型別的內容 |
ostream& operator<<(ostream& os, const BasicExcelCell& cell) |
輸出當前單元格內容到輸出流中 |
void Set(int val) void Set(double val) void Set(const char* str) void Set(const wchar_t* str) |
輸出指定格式的內容到當前單元格 |
void SetInteger(int val) void SetDouble(double val) void SetString(const char* str) void SetWString(const wchar_t* str) |
輸出指定格式的內容到當前單元格 |
void EraseContents() |
清空當前單元格的內容 |