微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

[请妖哥]BCB 关于ADO操作EXCEL的教程或例子?--高分

时间:2017-01-17 03:30  浏览:努力统计中...
各位大虾,谁能帮忙提供一些ADO操作EXCEL的教程或例子。 现在可以对工作薄,工作表操作。但具体怎样对工作表内的某一行,某一列,某一区域操作,还不熟悉。 另外,有没有快速实现
各位大虾,谁能帮忙提供一些ADO操作EXCEL的教程或例子。
现在可以对工作薄,工作表操作。但具体怎样对工作表内的某一行,某一列,某一区域操作,还不熟悉。
另外,有没有快速实现这些功能的操作呢?(不谈OLE了)

你不是要快速实现对excel功能的操作的代码或教程吗,XLSReadWrite中就有很多现成的Samples,如果你一定要ADO的.我就不熟悉了.

更快更可靠的方法既不用ADO,也不用OLE,用XLSReadWrite,妖哥网站或盒子上都有的下,它比OLE快很多(没与ADO作测试),且目标机上不装OFFICE,我用了很久了.


1楼的,搞错了吧。我想要代码或教程方面的东西,不是XLSReadWrite程序。



我去看盒子的网站,怎么下载XLSReadWrite,是EXE文件?你有这方面的网址也可以,OK?

妖哥网站上就有,是个第三方的控件:
http://www.ccrun.com/view.asp?id=562

妖哥,在不?回答一下,OK?
//Persist Security Info=False";

如果你使用ADO,实际上就是将Excel看作是数据库,每张表必须严格按照数据的式样设计,即第一行是字段名称,具体通过ADO能否实现使用OLE那种效果,没有试过,因为没有必要,使用ADO操作数据库,数据库程序更好啊!

我感觉通过ADO实现类似OLE那种效果的可能行不是太大,应为它是一种数据库操作方式,还没有听说那种数据组件能将数据表,改的绚丽多彩(本人猜想)


你说的那个ADO操作,我只听说过。没有操作过。能否给一些例子呢?

//ADOQuery1->ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};DBQ="+ExtractFilePath(Application-> ExeName)+"bb.XLS";

AnsiString constr ="Provider=Microsoft.Jet.OLEDB.4.0;\
Data Source="+ExtractFilePath(Application-> ExeName)+"bb.XLS ;\
Extended Properties=Excel 8.0;" ;
//Jet OLEDB:Database Password="";\
StringGrid1->Cells[2][0]="序号2";
ADOQuery1->ConnectionString =constr ;

ADOQuery1->Close();
ADOQuery1->SQL->Clear() ;
ADOQuery1->SQL->Add("Select * from [Sheet1$] ") ;
ADOQuery1->Close();
ADOQuery1->Open() ;
Label1->Caption ="记录数:"+ IntToStr(ADOQuery1->RecordCount) ;
StringGrid1->Cells[0][0]="时间";
StringGrid1->Cells[1][0]="序号1";
StringGrid1->Cells[3][0]="序号3";
StringGrid1->Cells[4][0]="序号4";
{
int i=0;
StringGrid1->RowCount=2;
ADOQuery1->Open();
ADOQuery1->First() ;
  {
  i++;
  StringGrid1->Cells[0][i]=ADOQuery1->FieldByName("时间")->AsDateTime;
  StringGrid1->Cells[1][i]=ADOQuery1->FieldByName("序号1")->AsInteger;
  StringGrid1->Cells[2][i]=ADOQuery1->FieldByName("序号2")->AsInteger;
  StringGrid1->Cells[3][i]=ADOQuery1->FieldByName("序号3")->AsInteger;
  ADOQuery1->Next();
  StringGrid1->RowCount++;
  }
void __fastcall TForm1::Button1Click(TObject *Sender)
}
void __fastcall TForm1::Button10Click(TObject *Sender)
{
ADOQuery1->Open() ;
while(!ADOQuery1->Eof)
String a1=TimeToStr(Time());
TVarRec a[]={a1,12,10,10};
  // StringGrid1->Cells[4][i]=ADOQuery1->FieldByName("序号4")->AsInteger;
ADOQuery1->AppendRecord(a,ARRAYSIZE(a)-1);
Label1->Caption ="记录数:"+ IntToStr(ADOQuery1->RecordCount) ;


}


    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------