简介
CSpreadSheet是一个C++编写的Excel读写控件,当我们希望输出Excel文件或以文
本文件分隔 以Tab分隔的文件时, CSpreadSheet能使我们的工作事半功倍.该控件
column函数的使用能方便我们读写此类文件,以对象的形式供我们使用.
主要特征
创建Excel文件或文本特征文件.,写入多行或单行.读取多行,列,一行从Excel文件
或文本特征文件.替代、插入、追加到Excel文件或文本特征文件.转换已存在或最近
打开的Excel文件或文本特征文件.
限制
该控件需要MFC(微软基础类库)支持.未测试是否支持Unicode编码.控件以ODBC读写
Excel文件,需要ODBC驱动程序.Excel文件必须列标记.且首行列标记唯一(字段).禁止
删除工作簿,仅允许删除工作簿内容.列值类型参照程序数据类型.不采用Excel格式.
一,如何使用此类?
常用函数:
CSpreadSheet(CString File, CString SheetOrSeparator, bool Backup = true)
bool AddHeaders(CStringArray &FieldNames, bool replace = false)
bool AddRow(CStringArray &RowValues, long row = 0, bool replace = false)
bool AddCell(CString CellValue, short column, long row = 0)
bool AddCell(CString CellValue, CString column, long row = 0,bool Auto=true)
bool ReadRow(CStringArray &RowValues, long row = 0)
bool ReadColumn(CStringArray &ColumnValues, short column)
bool ReadColumn(CStringArray &ColumnValues, CString column,bool Auto = true)
bool ReadCell (CString &CellValue, short column, long row = 0)
bool ReadCell (CString &CellValue,CString column,long row=0,bool Auto=true)
bool DeleteSheet()
bool DeleteSheet(CString SheetName)
bool Convert(CString SheetOrSeparator)
void BeginTransaction()
bool Commit()
bool RollBack()
bool GetTransactionStatus()
void GetFieldNames (CStringArray &FieldNames)
long GetTotalRows()
short GetTotalColumns()
long GetCurrentRow()
bool GetBackupStatus()
CString GetLastError()
Excel特定函数:
bool ReplaceRows(CStringArray &NewRowValues, CStringArray &OldRowValues)
文本函数:
尚无.
函数介绍:
CSpreadSheet(CString File, CString SheetOrSeparator, bool Backup = true)
该构造函数将打开Excel(xls)文件或其他制定工作簿的文件以供读写.创建一个CSpreadSheet对象.
参数:
File: 文件路径,可以是绝对路径或相对路径,如果文件不存在将创建一个文件.
SheetOrSeparator 工作簿名.
Backup 制定是否备份文件,默认未备份文件,如果文件存在,将创建一个名为CSpreadSheetBackup 的备份文件.
bool AddHeaders(CStringArray &FieldNames, bool replace = false)
该函数将在打开的工作簿的首行添加一个头(字段).对于Excel,每列字段必须唯一.对于特
定特征的文本文件没有限制.对于一个打开的工作簿文件,默认将添加一列,如果设置replace=true
将替代存在的字段值.该函数返回一个Bool类型的值.对于Excel,该函数需
在添加任意行之前调用.对于特定特征的文本文件,该函数可选.
参数:
FieldNames 字段名数组.
Replace 如字段存在,该参数将决定是否替代原有字段.
bool AddRow(CStringArray &RowValues, long row = 0, bool replace = false)
该函数将追加、插入或替代一行到已经打开的文档,默认追加到行的尾部.替代将以变量的值而定,新的一行将插入或替代到指定的行.
参数:
RowValues 行值
Row 行编号,如果Row=1 第一行.即字段行.
Replace 如果该行存在,指示是否替代原有行.
bool AddCell(CString CellValue, short column, long row = 0)
bool AddCell(CString CellValue, CString column, long row = 0,bool Auto=true)
添加或替代一个打开的工作簿中的单元格,默认为该行的最后一个单元格.返回一个Bool类型的值(状态);
参数:
CellValue 填充的单元格的值。
Column 列编号
column 列名
Row 含编号,如果Row=1 第一行,即字段行.
Auto 是否让函数自动判断自动判断字段.
bool ReadRow(CStringArray &RowValues, long row = 0)
从打开的工作簿中读取一行,默认读取下一行,如果你没有使用连接池,连续运行两次,则第一次读取第一行,第二次读取第二行.返回一个Bool类型的值(状态);
参数:
RowValues 用于存储读取到的值。
Row 行编号.默认为第一行.
bool ReadColumn(CStringArray &ColumnValues, short column)
bool ReadColumn(CStringArray &ColumnValues, CString column,bool Auto = true)
从打开的工作簿中读取一列.返回一个Bool类型的值(状态);
参数:
Short column 列编号
CString column 列名或字段名.
Columnvalues 存储读取到的值.
Auto 设置函数自动扫描列名或字段.
bool ReadCell (CString &CellValue, short column, long row = 0)
bool ReadCell (CString &CellValue,CString column,long row=0,bool Auto=true)
从打开的工作簿中读取一个单元格的值。默认读取下一行.返回一个Bool类型的值(状态);
参数:
CellValue 存储单元格的值.
Short column 列编号.
Row 行编号
CString column 列名
Auto 设置函数自动扫描列名或字段.
bool DeleteSheet()
从打开的文档中删除所有的工作簿内容.返回一个Bool类型的值(状态);
bool DeleteSheet(CString SheetName)
从打开的文档中删除指定工作簿名的工作簿内容.返回一个Bool类型的值(状态);
参数:
SheetName 工作簿名.e.G Sheet1
bool Convert(CString SheetOrSeparator)
将Excel(xls)文件转换为特定特征的文本文件(.csv)或将特定特征的文本文件(.csv)转换为Excel(xls)文件.如果
将特定特征的文本文件(.csv)转换为Excel(xls)文件SheetOrSeparator将不会被使用.返回一个Bool类型的值(状态);
参数:
SheetOrSeparator 特征样式.
void BeginTransaction()
bool Commit()
bool Commit()
与SQL语言函数,函数相似,BeginTransaction开始事务,Commit提交事务.RoolBack回滚至保存点.Commit Commit将返回一个Bool值来表示是否成功.
bool GetTransactionStatus()
查询事务的状态,如果为true 表明已经开始,false表明没有开始或已经结束.
void GetFieldNames (CStringArray &FieldNames)
返回一个工作簿中的字段数组.
参数:
FieldNames 存储字段名的数组.
long GetTotalRows()
获得工作簿中行数.返回行数.
short GetTotalColumns()
获得工作簿中列数.返回列数.
long GetCurrentRow()
获得已选择的当前行的行号.返回行号,当前行将调用默认的ReadRow函数.
bool GetBackupStatus()
获得备份执行情况,true 已经执行,false没有执行(用户选择)或执行错误.
CString GetLastError()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论