VC中操作Excel方法集锦_第1页
VC中操作Excel方法集锦_第2页
VC中操作Excel方法集锦_第3页
VC中操作Excel方法集锦_第4页
VC中操作Excel方法集锦_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、MSDN 上的代码,很好的例子#include "excel8.h "/OLE Variantfor Optional.COleVariant VOptional(long)DISP_E_PARAMNOTFOUND, VT_ERROR);existing workbook._Application objApp; _Workbook objBook; Workbooks objBooks; Worksheets objSheets; _Worksheet objSheet; Range objRange; VARIANT ret;/ Instantiate Excel

2、and open an objApp.CreateDispatch( "Excel.Application ");objBooks = objApp.GetWorkbooks(); objBook = objBooks.Open( "C:Test.xls "VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional);objSheets = objBook.GetWorkshe

3、ets();objSheet = objSheets.GetItem(COleVariant(short)1);/Get the range object for which youwish to retrievethe/dataand then retrieve the data (asa variant array,ret).objRange= objSheet.GetRange(COleVariant( "A1 "),COleVariant( "C8 ");ret =objRange.GetValue();/Createthe SAFEARRAY

4、from the VARIANT ret.COleSafeArray sa(ret);/Determine the array 's dimensions. long lNumRows;long lNumCols;sa.GetUBound(1, &lNumRows);sa.GetUBound(2, &lNumCols);/Display the elements in the SAFEARRA.Y long index2;VARIANT val;int r, c;TRACE( "Contents of SafeArrayn ");TRACE( &qu

5、ot;=nt "); for(c=1;c <=lNumCols;c+)TRACE( "ttCol %d ", c);TRACE( "n "); for(r=1;r <=lNumRows;r+)TRACE( "Row %d ", r); for(c=1;c <=lNumCols;c+) index0=r; index1=c; sa.GetElement(index, &val); switch(val.vt) case VT_R8:TRACE( "tt%1.2f ", val.db

6、lVal); break;case VT_BSTR:TRACE( "tt%s ",(CString)val.bstrVal); break;case VT_EMPTY:TRACE( "tt <empty> "); break; TRACE( "n ");saving changes/Close the workbook without /and quit Microsoft Excel.objBook.Close(COleVariant(short)FALSE), VOptional, VOptional);objApp.

7、Quit();2、不错的一篇文章在 VC 中彻底玩转 Excel作者:龚敏来源:子玉山庄更新: 10/8/2004如今 Excel 是越来越重要了,在我们自己开发的程序中不免要和 Excel 打交道了。利用 Automation 技术,我们可以在不去了解数据库的情况下玩转 Excel,而且你会发现一切竟如此轻松!好了, 咱们开始吧, 我不喜欢用长篇累牍的代码来故弄玄虚, 所以下面的代码都是切中要害 的片段,总体上是个连贯的过程,包括启动Excel,读取数据,写入数据,以及最后的关闭Excel,其中还包括了很多人感兴趣的合并单元格的处理。特别说明以下代码需要MFC的支持,而且工程中还要包含 EX

8、CEL2000的定义文件:EXCEL9.HEXCEL9.CPP*/*/ 变量定义_Applicationapp;Workbooksbooks;_Workbookbook;Worksheetssheets;_Worksheetsheet;Range range;Range iCell;LPDISPATCH lpDisp;COleVariant vResult;COleVariantcovTrue(short)TRUE),covFalse(short)FALSE),covOptional(long)DISP_E_PARAMNOTFOUND, VT_ERROR);/*/ 初始化 COM 的动态连接库

9、 if(!AfxOleInit()AfxMessageBox( "无法初始化 COM 的动态连接库 ! "); return ;/*/ 创建 Excel2000 服务器 (启动 Excel)if(!app.CreateDispatch( "Excel.Application ") AfxMessageBox( "无法启动 Excel 服务器 ! "); return;app.SetVisible(TRUE);/ 使 Excel 可见app.SetUserControl(TRUE);/允许其它用户控制 Excel/*/ 打开 c:1.x

10、lsbooks.AttachDispatch(app.GetWorkbooks();lpDisp = books.Open( "C:1.xls ",covOptional, covOptional, covOptional,covOptional, covOptional, covOptionalcovOptional, covOptional,);covOptional, covOptional,covOptional, covOptional,/*/ 得到 Workbookbook.AttachDispatch(lpDisp);/*/ 得到 Worksheets she

11、ets.AttachDispatch(book.GetWorksheets();#include "excel8.h "/*/ 得到当前活跃 sheet/ 如果有单元格正处于编辑状态中,此操作不能返回,会一直等待lpDisp=book.GetActiveSheet();sheet.AttachDispatch(lpDisp);/ 读取已经使用区域的信息,包括已经使用的行数、列数、起始行、起始列Range usedRange;usedRange.AttachDispatch(sheet.GetUsedRange(); range.AttachDispatch(usedRang

12、e.GetRows();long iRowNum=range.GetCount(); / 已经使 用的行数range.AttachDispatch(usedRange.GetColumns();long iColNum=range.GetCount();/ 已经使用的列数long iStartRow=usedRange.GetRow();/ 已使用区域的起始行,从 1 开始long iStartCol=usedRange.GetColumn();/ 已使用区域的起始列,从 1 开始/*/ 读取第一个单元格的值range.AttachDispatch(sheet.GetCells();range

13、.AttachDispatch(range.GetItem(COleVariant(long)1),COleVariant(long)1).pdispVal );COleVariant vResult =range.GetValue();CString str; if(vResult.vt = VT_BSTR) str=vResult.bstrVal;else if (vResult.vt=VT_R8)str.Format( "%f ",vResult.dblVal);else if(vResult.vt=VT_DATE)/ 字符串/8 字节的数字/ 时间格式SYSTEMT

14、IME st;VariantTimeToSystemTime(&vResult.date, &st);else if(vResult.vt=VT_EMPTY) / 单元格空的str= " "/ 读取第一个单元格的对齐方式,数据类型 :VT_I4 / 读取水平对齐方式 range.AttachDispatch(sheet.GetCells(); iCell.AttachDispatch(range.GetItemCOleVariant(long(1).pdispVal);vResult.lVal=0;vResult=iCell.GetHorizontalAli

15、gnment(); if(vResult.lVal!=0)switch (vResult.lVal)case 1: / 默认break;case -4108: / 居中break;case -4131 : / 靠左break;case -4152 : / 靠右break;/ 垂直对齐方式 iCell.AttachDispatch(range.GetItemCOleVariant(long(1).pdispVal);vResult.lVal=0;vResult=iCell.GetVerticalAlignment(); if(vResult.lVal!=0)switch (vResult.lVa

16、l)case -4160 :/ 靠上break;case -4108 :/ 居中break;case -4107 :/ 靠下break;(COleVariant(long(1),(COleVariant(long(1),/ 设置第一个单元格的值 "HI,EXCEL! " range.SetItem(COleVariant(1),COleVariant(1),COleVariant( "HI,EXCEL! ");/*/ 设置第一个单元格字体颜色 :红色Font font;range.AttachDispatch(sheet.GetCells();range

17、.AttachDispatch(range.GetItemCOleVariant(long(1).pdispVal);font.SetColor(COleVariant(long)0xFF0000);(COleVariant(long(1),/*/ 合并单元格的处理/ 包括判断第一个单元格是否为合并单元格,以及将第一个单元格进行合并 Range unionRange;range.AttachDispatch(sheet.GetCells(); unionRange.AttachDispatch(range.GetItem(COleVariant(long)1),COleVariant(long

18、)1).pdispVal );vResult=unionRange.GetMergeCells();if(vResult.boolVal=-1)/ 合并单元格的行数range.AttachDispatch (unionRange.GetRowslong iUnionRowNum=range.GetCount ();/ 是合并的单元格();/ 合并单元格的列数range.AttachDispatch (unionRange.GetColumns (); long iUnionColumnNum=range.GetCount ();/ 合并区域的起始行,列long iUnionStartRow=u

19、nionRange.GetRow();long iUnionStartCol=unionRange.GetColumn();else if(vResult.boolVal=0)/ 不是合并的单元格 / 起始行,从 1 开始 / 起始列,从 1 开始/ 将第一个单元格合并成 2行,3 列 range.AttachDispatch(sheet.GetCells(); unionRange.AttachDispatch(range.GetItem(COleVariant(long)1),COleVariant(long)1).pdispVal );unionRange.AttachDispatch(

20、unionRange.GetResize(COleVariant(long)2),COleVariant(long)3);unionRange.Merge(COleVariant(long)0); / 合并单元格/*/ 将文件保存为 2.xlsbook.SaveAs(COleVariant( "C:2.xls "),covOptional,covOptional, covOptional,covOptional,covOptional,0, covOptional,covOptional,covOptional,covOptional);/*/ 关闭所有的 book ,退出

21、 Excelbook.Close (covOptional,COleVariant(OutFilename),covOptional); books.Close();app.Quit();3、另一篇不错的文章在 Visual C+ 中调用 Excel 20002001-06-14 19:02:39 程蓬在开发软件时,经常要将数据输出到 Excel 2000 中,在 Excel 2000 中对该数据进行进 一步地格式化处理或进行计算处理。在VisualBasic 中处理起来较简单, Excel 2000 的VB编程帮助中有较为详细的介绍。在VisualC+冲如何进行处理了?利用 Excel 20

22、00的 ActiveX Automate 功能,处理起来同 VB 中类似。但要注意以下几点: 对于对象的属性值的读取或赋值,需要用GetProperty() 或 SetProperty(NewValue) 函数,不能象 VB 中 直 接 通 过 属 性 名 称 取 值 或 赋 值 。 例 如 : Worksheet.GetCount(), Worksheet.SetName( “Sheet1”)。对 集 合 对 象中 的 成 员 对 象 的 引 用 ,必 须 使 用 集 合 对 象 的 GetItem() 函 数 。 例如 : Worksheets.GetItem(ColeVariant(lo

23、ng)1) 或 Worksheets.GetItem(ColeVariant( “Sheet1” )取得 第一个工作表。在COM接口中,时常用到 Variant, BSTR SafeArray数据类型。Variant数据类型是一个联合,可表示几乎所有的类型的数据,具体用法见MSDN中的相关介绍,类_variant_t是对VARIANT 数据类型的封装。在 Excel 2000 的 VB 编程帮助中,如果提到某函数或属性需要一个值, 该值的数据类型通常是Variant,在封装Excel 2000对象的类定义中,说明了具体需要的数据类型。BSTR是一个包括了字符串和字符串长度的数据结构,类_bst

24、r_t是对BSTR数据类型的封装。在Excel 2000的VB编程帮助中提到的字符串通常指BSTR具体函数参数或属性的数据类型,见封装该对象的类的定义。 SafeArray 是一个包括数组和数组边界的结构, 数组边界外的内容不允许访问。 在 Excel 2000 的 VB 编程帮助中提到的数组是指SafeArray。关于SafeArray的处理,请见 MSDN的相关帮助。对于缺省参数和缺省值。在VB中,函数的参数可以空缺,在VC+中不允许,必须将所有的参数填写完全。 如果你希望指定某个参数为缺省值, 根据参数数据类型的不同, 可指定不同 的缺省值。当参数数据类型为字符串时,可以用长度为 0 的

25、字符串。如果参数是 Variant 类 型 , 可 用 常 量 vtMissing , 该 常 量 在 comdef.h 中 定 义 。 也 可 用 _variant_t(DISP_E_PARAMNOTFOUND, VT_ERROR产生一个 Variant 对象。Excel 对象中的集合对象有时包括的子对象是不一定的,例如: Range 对象,可以 表示Cell的集合,也可以表示 Column的集合或 Row的集合,Range.Getltem(l)可以返回Cell 或 Column 或 Row 对象。对对象的引用或传递对象,使用IDispatch类对象,有时利用 Variant对IDispat

26、ch进行包装。以下是一段源程序,演示如何启动 Excel 2000,利用一个模板文件产生一个新文档,在该 文档的” Sheet1”工作表的第一个单元中填写一段文字,设置第一列的列宽,然后调用一个 模板中的宏,执行一段程序,最后打印预览该 Excel 文档。模板文件名称: MyTemplate.xlt 。 程序在 Visual C+6.0 sp4, Windows 2000 Professional sp-1 下调试通过。首先利用 Visual C+ 6.0,建立一个 MFC基于对话框的工程项目,共享 DLL, Win32平 台。工程名称 ExcelTes。在主对话框中加入一个按钮,ID IDC

27、_EXCELTESTCaption Test Excel 双击该按钮,增加成员函数 voidCExcelTestDlg:OnExceltest()。在 BOOLCExcelTestApp:l nit In sta nce()中,dlg.DoModal();之前增加代码:if (CoInitialize(NULL)!=0)AfxMessageBox( "初始化 COM 支持库失败 ! ");exit(1);在 return FALSE; 语句前,加入: CoUninitialize();选择 Menu-> View-ClassWizade,打开 ClassWizade

28、窗口,选择 Add Class-> From a type library , 选择 D:Program FilesMicrosoft OfficeofficeExcel9.OLB(D:Program FilesMicrosoft是本机上 Microsoft Office 2000 的安装目录,可根据个人机器上的实际安装目录修改 )。选择 _Application、Workbooks、Workbook > Worksheets、Worksheet、 Range,加入新类,分别为 _Application、Workbooks、_Workbook、Worksheets、Workshee

29、t、 Range,头文件 Excel9.h,源文件 Excel9.cpp。在 ExcelTestDlg.cpp文件的头部,#include"ExcelTestDlg.h "语句之下,增加:#include"comdef.h "#include"Excel9.h "在 void CExcelTestDlg:OnExceltest() 函数中增加如下代码:void CExcelTestDlg:OnExceltest()_Application ExcelApp;Workbooks wbsMyBooks;_Workbook wbMyBook

30、;Worksheets wssMysheets;_Worksheet wsMysheet;Range rgMyRge;/创建 Excel 2000 服务器 (启动 Excel) if (!ExcelApp.CreateDispatch( "Excel.Application ",NULL)AfxMessageBox( " 创建 Excel 服务失败 ! ");exit(1);/ 利用模板文件建立新文档 wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); wbMyBook.AttachDispa

31、tch(wbsMyBooks.Add(_variant_t( "g:exceltestMyTemplate.xlt "); / 得到 Worksheets wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);/ 得到 sheet1 wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t( "sheet1 "),true);/得到全部 Cells,此时,rgMyRge是cells的集合 rgMyRge.AttachDispatch(wsM

32、ysheet.GetCells(),true);/设置 1 行 1 列的单元的值ExcelrgMyRge.SetItem(_variant_t(long)1),_variant_t(long)1),_variant_t( "This Is A Test Program! ");/得到所有的列rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true);/得到第一列rgMyRge.AttachDispatch(rgMyRge.GetItem(_variant_t(long)1),vtMissing).pdispVal,true); /

33、设置列宽rgMyRge.SetColumnWidth(_variant_t(long)200);/调用模板中预先存放的宏ExcelApp.Run(_variant_t( "CopyRow "),_variant_t(long)10),vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,v

34、tMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing);/打印预览 wbMyBook.SetSaved(true);ExcelApp.SetVisible(true);wbMyBook.PrintPreview(_variant_t(false);/ 释放对象rgMyRge.ReleaseDispatch(); wsMysheet.ReleaseDispatch(); wssMysheets.ReleaseDi

35、spatch();wbMyBook.ReleaseDispatch(); wbsMyBooks.ReleaseDispatch();ExcelApp.ReleaseDispatch(); 添加完以上程序后,可运行看结果VC中操作Excel方法集锦(2)2011 年 03 月 05 日星期六 22:551、ADO 操作 Excel 文件的问题,跟大家分享一下:首先利用Excel2003创建了一个名为 Demo.xls的文件,内容如下:Name AgeTY12TZL 15然后打开VC,创建一个命令行应用程序。然后如一般的ADO程序一样编写相应代码,只是注意打开数据库的代码如下写:m_pConnec

36、tion->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.xls;ExtendedProperties="Excel 8.0;HDR=No;IMEX=1"","","",adModeUnknown);注意一下HDR,如果后面是No的话,表示ADO将不把你ExceI文件的第一行作为字段名(此时 使 用 默 认 字 段 名 : F1 , F2 。 。 以 此 类 推 , 当 然 也 可 以 用 (LPCTSTR)m_pRecordset->G

37、etFields()->GetItem(_variant_t)zz)->Name 之类的代码来获得相应 的字段名)。否则如上 Excel文件的字段名将是Name与Ageo另外是IMEX,如果设置了"IMEX=1;" 则通知驱动程序始终将 “互混”(数字, 日期, 字符串等) 数据列作为文本读取, 同时这个选项有可能影响到 excel 表格拒绝写操作,也就是说,如果我们要求写入 excel 的 话,这个选项不能被设置。接下来是打开记录集,代码如下(注意一下表名的写法):m_pRecordset->Open("select*fromSheet1$&q

38、uot;,_variant_t(IDispatch*)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCm dUnknown);知道了字段名,打开了数据库跟记录集,随后的操作就跟普通ADO的操作一样了:读取操作:while(!m_pRecordset->adoEOF)_variant_t var = m_pRecordset->GetCollect("Name");if(var.vt != VT_NULL)_bstr_t strName = (LPCSTR)_bstr_t(var);var = m_pRe

39、cordset->GetCollect("Age");if(var.vt != VT_NULL)_bstr_t strAge = (LPCSTR)_bstr_t(var);string strMid = strName + "-> " + strAge;cout<<strMid.c_str()<<endl;m_pRecordset->MoveNext();插入操作:m_pRecordset->AddNew(); m_pRecordset->PutCollect("Name",_va

40、riant_t("zz"); m_pRecordset->PutCollect("Age",_variant_t("23");m_pRecordset->Update();更新操作:m_pRecordset->MoveFirst(); m_pRecordset->PutCollect("Name",_variant_t("zz");m_pRecordset->Update();删除操作:不支持!这也是感到很遗憾的地方。 好在我们可以通过执行 update Sheet

41、1$ set Name=NULL,Age=NULL where Name='zz'之类的SQL语句来实现类似功能。当然,你要知道的是,这一 行并没有真正删除掉,所以通常在 select 的时候要进行一定的筛选,例如: select * from Sheet1$ where Name is not NULL;其它注意事项:如果通过执行 SQL语句的方法完成数据插入与更新操作,需要注意所有的字段,包括数字,都要按文本来处理,否则会报类型不正确的错误。【转】 vc 操作 excel 文件的类与 CSpreadSheet 中文文档2011-07-20 14:33转载自 zh_begin

42、最终编辑 zh_begin 由于工作需要,需要在 excel 和 mysql 数据库之间互相交换数据,于是在网上搜索了一下用 vc如何操作excel,基本上有三种实现方式,一种是利用odbc, 种是使用微软的 automation技术,一种就是直接分析 excel 的格式并进行解析。在 codeproject 上 找 到 两 个 开 源 的 操 作 类 , 一 个 是 basicexcel , 地 址 为 :一个是 CSpreadSheet地址为:两个我都使用了一下,最后决定使用basicexcel,下面说说我的感受:1 CSpreadSheet,采用odbc实现,速度慢,bug多,但是对中文

43、支持比较好,但是有个让我 最不能忍受的确定,就是它把所有的数据写入 excel 中时都当作字符串来实现,这样导致在 excel 的每个 field 中的内容前都自动添加一个单引号, 原因是 excel 为了防止自动格式转换, 添加一个单引号使得每个数据项都强制转换成字符串类型。 最后怎么都去不掉, 只好放弃使 用。2 basicexcel,采用com方式实现,访问速度快, api接口也比较简单,可以随意设置 excel中 field 内容的类型,但是对于中文的支持不好,要自己处理汉字编码,支持ansi 字符和unicode 字符。 刚开始的时候写入的汉字都是乱码, 后来自己做了字符转换, 吧

44、gb2312 编码 的汉字转变成 unicode 编码,就可以正常显示了这两个类在官方网页上都有 api 使用说明和示例工程,大家一起交流 .由于刚刚使用,感受暂时就这么多了,感觉微软的东西还真是麻烦.本 文 来 自 CSDN 博 客 , 转 载 请 标 明 出 处 :CSpreadSheet中文文档简介CSpreadSheet是一个C+编写的Excel读写控件,当我们希望输出ExceI文件或以文本文件分隔以Tab分隔的文件时,CSpreadSheet能使我们的工作事半功倍.该控件 能方便我们读写此类文件 ,以对象的形式供我们使用 .主要特征创建Excel文件或文本特征文件.,写入多行或单行.

45、读取多行,列,一行从 Excel文件或文本特征文件.替代、插入、追加到Excel文件或文本特征文件.转换已存在或最近打开的 Excel 文件或文本特征文件 .限制该控件需要 MFC(微软基础类库)支持.未测试是否支持 Unicode编码.控件以ODBC读写Excel文件,需要 ODBC驱动程序.Excel文件必须列标记.且首行列标记唯一(字段).禁止删除工作簿,仅允许删除工作簿内容列值类型参照程序数据类型不采用Excel格式.一,如何使用此类 ?常用函数 : CSpreadSheet(CString File, CString SheetOrSeparator, bool Backup = t

46、rue) 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(

47、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 c

48、olumn,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

49、() long GetCurrentRow() bool GetBackupStatus() CString GetLastError()Excel 特定函数 : bool ReplaceRows(CStringArray &NewRowValues, CStringArray &OldRowValues) 文本函数 : 尚无.函数介绍 :CSpreadSheet(CString File, CString SheetOrSeparator, bool Backup = true)该构造函数将打开Excel(xls文件或其他制定工作簿的文件以供读写.创建一个CSpreadShe

50、et对象 . 参数:File:文件路径 ,可以是绝对路径或相对路径,如果文件不存在将创建一个文件.SheetOrSeparator 工作簿名 .Backup 制 定 是 否 备 份 文 件 , 默 认 未 备 份 文 件 , 如 果 文 件 存 在 , 将 创 建 一 个 名 为CSpreadSheetBackup 的备份文件bool AddHeaders(CStringArray &FieldNames, bool replace = false) 该函数将在打开的工作簿的首行添加一个头(字段).对于 Exce,l 每列字段必须唯一 .对于特定特征 的文 本文 件没有 限制 .对于

51、一个 打开的 工作 簿文 件,默认 将添 加一 列,如果设置 replace=true将替代存在的字段值该函数返回一个 Bool类型的值.对于Excel,该函数需 在添加任意行之前调用 .对于特定特征的文本文件,该函数可选 . 参数 :FieldNames 字段名数组 .Replace 如字段存在,该参数将决定是否替代原有字段 .bool AddRow(CStringArray &RowValues, long row = 0, bool replace = false) 该函数将追加、插入或替代一行到已经打开的文档,默认追加到行的尾部 .替代将以变量的值而定 , 新的一行将插入或替代

52、到指定的行 .参数 :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 列编号

53、column 列名Row含编号,如果 Row=1 第一行,即字段行 .Auto是否让函数自动判断自动判断字段 .bool ReadRow(CStringArray &RowValues, long row = 0)从打开的工作簿中读取一行,默认读取下一行 ,如果你没有使用连接池,连续运行两次 ,则第次读取第一行 ,第二次读取第二行 .返回一个 Bool 类型的值(状态) ;参数 :RowValues 用于存储读取到的值。Row 行编号 .默认为第一行 .bool ReadColumn(CStringArray &ColumnValues, short column)bool R

54、eadColumn(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 c

55、olumn,long row=0,bool Auto=true)从打开的工作簿中读取一个单元格的值。默认读取下一行返回一个Bool类型的值(状态);参数 :CellValue 存储单元格的值 .Short column 列编号 .Row 行编号CString column 列名Auto 设置函数自动扫描列名或字段 .bool DeleteSheet()从打开的文档中删除所有的工作簿内容.返回一个 Bool 类型的值(状态) ;bool DeleteSheet(CString SheetName)从打开的文档中删除指定工作簿名的工作簿内容.返回一个 Bool 类型的值(状态) ;参数 :Shee

56、tName 工作簿名 .e.G Sheet1bool 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()查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论