一个用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)
扫描二维码关注公众号,回复:
3927042 查看本文章
|
载入一个已存在的工作薄文件 |
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() |
清空当前单元格的内容 |