`
mengdejun
  • 浏览: 410295 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CSpreadSheet 中文文档

    博客分类:
  • Doc
阅读更多

CSpreadSheet中文文档
http://www.codeproject.com/info/Licenses.aspx
简介
CSpreadSheet是一个C++编写的Excel读写控件,当我们希望输出Excel文件或以文
本文件分隔 以Tab分隔的文件时, CSpreadSheet能使我们的工作事半功倍.该控件
能方便我们读写此类文件,以对象的形式供我们使用.

主要特征

创建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()

返回最后一次错误信息.
Excel特定函数:
bool ReplaceRows(CStringArray &NewRowValues, CStringArray &OldRowValues)
该函数将搜索且代替多次执行的值.不支持已经回滚或释放的文档.执行完将返回执行的状态.
参数:

NewRowValues 新的值,即更新的值.
OldRowValues    原有的值,即已经存在的值.

示例:
// Create a new Excel spreadsheet, filename is test.xls, sheetname is TestSheet
CSpreadSheet SS("Test.xls", "TestSheet");

// Fill a sample 5 by 5 sheet
CStringArray sampleArray, testRow, Rows, Column;
CString tempString;
char alphabet = 'A';

SS.BeginTransaction();
for (int i = 1; i <= 5; i++)
{
    sampleArray.RemoveAll();
    for (int j = 1; j <= 5; j++)
    {
        tempString.Format("%c%d", alphabet++, i);
        sampleArray.Add(tempString);
    }
    alphabet = 'A';
    if (i == 1) // Add header rows
    {
        SS.AddHeaders(sampleArray);
    }
    else // Add data rows
    {
        SS.AddRow(sampleArray);
    }
}
// Set up test row for appending, inserting and replacing
for (int k = 1; k <= 5; k++)
{
    testRow.Add("Test");
}
SS.AddRow(testRow); // append test row to spreadsheet
SS.AddRow(testRow, 2); // insert test row into second row of spreadsheet
SS.AddRow(testRow, 4, true); // replace fourth row of spreadsheet with test row
SS.Committ();

SS.Convert(";"); // convert Excel spreadsheet into text delimited format
                 // with ; as separator
// print out total number of rows
printf("Total number of rows = %d\n\n", SS.GetTotalRows());
// Print out entire spreadsheet
for (i = 1; i <= SS.GetTotalRows(); i++)
{
    // Read row
    SS.ReadRow(Rows, i);
    for (int j = 1; j <= Rows.GetSize(); j++)
    {
        if (j != Rows.GetSize())
        {
            printf("%s\t", Rows.GetAt(j-1));
        }
        else
        {
            printf("%s\n", Rows.GetAt(j-1));
        }
    }
}
// print out total number of columns
printf("\nTotal number of columns = %d\n\n", SS.GetTotalColumns());

// Read and print out contents of second column of spreadsheet
SS.ReadColumn(Column, 2);
for (i = 0; i < Column.GetSize(); i++)
{
    printf("Column 2 row %d: %s\n", i+1, Column.GetAt(i));
}
// Read in and print out the cell value at column 3, row 3 of spreadsheet
if (SS.ReadCell(tempString, 3, 3))
{
    printf("\nCell value at (3,3): %s\n", tempString);
}
else
{
    // print out error message if cell value cannot be read
    printf("Error: %s\n", SS.GetLastError);
}

 


About Author:
Yap Chun Wei
http://www.codeproject.com/Members/Yap-Chun-Wei
翻译:
武汉软件工程职业学院 孟德军
http://hi.baidu.Com/mak0000
下载:
http://www.codeproject.com/KB/database/CSpreadSheet/CSpreadSheet_src.zip

分享到:
评论

相关推荐

    CSpreadSheet中文文档.doc

    ### CSpreadSheet中文文档知识点详解 #### 一、概述 CSpreadSheet是一个强大的C++编写的Excel读写控件,适用于需要输出Excel文件或者处理文本文件(尤其是那些以Tab分隔的文件)的场景。通过封装一系列易于使用的...

    CSpreadSheet

    这个库支持常见的电子表格格式,如Microsoft Excel的XLS和XLSX,以及开放文档格式ODS等。通过CSpreadSheet,开发者可以轻松地进行数据操作,如行列增删、单元格格式设置、公式计算等,极大地简化了与电子表格相关的...

    CSpreadSheet_src_Tabú_CSpreadSheet_

    CSpreadSheet是一个C++编写的Excel读写控件,当我们希望输出Excel文件或以文本文件分隔 以Tab分隔的文件时 CSpreadSheet能使我们的工作事半功倍.该控件能方便我们读写此类文件以对象的形式供我们使用.主要特征创建...

    CSpreadSheet Src

    例如,"CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadsheet - CodeProject.html" 这个文档可能包含了CSpreadSheet的使用教程和示例代码,可以帮助开发者更好地理解这个库的使用方法...

    cspreadsheet

    《VC操作Excel类——cspreadsheet深度解析》 在信息技术领域,Excel作为一款强大的电子表格软件,被广泛应用于数据处理、分析和报告制作。而在编程环境中,如何高效地与Excel进行交互,是许多开发者需要面对的问题...

    CSpreadSheet.rar_CSpreadSheet_excel 读写类

    CSpreadSheet,一个极其强大读写Excel表单的类,此压缩包内含说明文档和示例程序,帮助你快速应用该类

    CSpreadSheet类文件.zip

    CSpreadSheet类是一个专为C++开发者设计的控件,用于处理Excel文件的读写操作。这个类库基于MFC(Microsoft Foundation Classes)框架构建,它使得在C++应用程序中集成Excel功能变得更加简单。MFC是微软提供的一个...

    CSpreadSheet类(含头文件.h和.cpp).rar

    CSpreadSheet类可对文件进行读写、修改等操作,并能逐位操作单元格,使用十分方便 注意事项: 使用时记得在StdAfx.h文件中加入 #include &lt;afxdb.h&gt; #include 然后手动添加 CSpreadSheet.h 和CSpreadSheet.cpp进该...

    CSpreadSheet类源码、CSpreadSheet (MFC dll)工程 及 SpreadSheetTest 测试工程

    CSpreadSheet 可无缝集成于MFC工程中,支持excel 数据增删改查、单元格合并、格式化等操作,功能强大。 有时我们希望将输出发送到Excel文件或一些文本分隔的文件,如逗号分隔的值文件或制表符分隔的文件。...

    VC6.0下操作EXCEL读写的例子,使用第三方类CSpreadSheet

    同时,描述中提到中文未经过测试,这可能意味着CSpreadSheet在处理中文字符时可能存在兼容性问题,实际使用时需要进行测试。 此外,为了正确显示和处理Excel中的数据,你需要了解Excel的单元格格式。CSpreadSheet...

    CSpreadSheet原版演示.rar

    CSpreadSheet是一个用于在C++程序中操作电子表格的库,它允许开发者处理类似Excel的工作表数据。这个“CSpreadSheet原版演示.rar”压缩包包含了一个关于如何使用CSpreadSheet进行读取和修改电子表格的示例项目。在这...

Global site tag (gtag.js) - Google Analytics