我想在execl中选定的几行,或整张表复制到dbgrid的数据后面,它们的列属性一致,应怎么实现?
或者在SQL server中实现此功能也行(在表中实现插入execl文件)
或者在SQL server中实现此功能也行(在表中实现插入execl文件)
解决方案 »
- 我要求职!有视频!! [
- 基于HTTP的QQ协议之我所见
- 怎么使用tmaskedit?
- 中秋节快乐,散分了
- 安装 Report Machine 2.6 成功,但运行的时候提示出错,"Project Project1.exe raised exception class ERadeError with message 'propert
- 再散
- 如何用sql语句统计满足条件的记录数?
- 自动生成与dbgrid字段数目一样多,宽度一致,紧靠dbgrid上方的多个edit
- 请问:怎样写磁道,还有关于OleContainer控件的问题
- ADO数据修改问题
- DevExpress TreeList 或其他类似的TreeList控件,高分和一定报酬!!!在线等待
- dblookupcombobox使用?在线等待!
可以用ADO直接连使用ADOExpress创建Microsoft Excel 浏览器
作者: David Intersimone
日期: 2000年08月22日
.打开Delphi,创建新的Application。2.在Form中放置ADODataSet3.将CommandType的属性设为cmdTableDirect。
ADODataSet和BDEDataSet访问数据表相类似。对于ADO来说,要说明数据源然后利用数据感
知(data-aware)控件将数据显示在应用程序中。首先要设置的是CommandType,它用来告
诉ADO引擎准备调用什么样的命令。4.设置ConnectionString属性
ConnectionString属性告诉ADO如何联接数据源。点击省略号会显示ConnectionString对话
框。我们要自己创建ConnectionString所以选择Use Connection String,然后点击Build
按钮激活Data Link Properties对话框。首先要做的是选择我们要用的数据提供者(Data
Provider)以取得数据,以为要访问的对象是Excel,所以我们选择Microsoft JET OLEDB
4.0 Provider,点击NEXT。下一步是要选择联接的具体对象,通过Browse按钮,选择任意
一个Excel文件或者使用我们提供的样例文件Forecast.xls。在测试ConnectionString之前,
我们还要手动的添加Extended Property,点击OK返回到ConnectionString对话框然后输入
’Extended Properties=Excel 8.0;’别忘了每一个ConnectionString实体都需要用分号
隔离。这是要对ADO声明我们需要Excel支持并使类库关联到Excel 8.0上。点击Build按钮,
然后点击TEST,如果返回正确的结果,这一步的工作就完成了。5.设置CommandText属性
该属性变成下来表单,允许你选择数据源中定义的表,选择a$。6.在Form中放置Datasource(Data Access)组件,和DBGrid(Data Controls)。
我们需要将ADODataset连接到网格上显示数据。将DBGrid的DataSource属性设置为
DataSource1,DataSource的ADODataSet属性设置为ADODataSet1。7.将ADODataSet的Active属性设为True
通过激活ADODataSet,我们可以在设计模式下测试查询的运行状态。来自于EXCEL的数据
将显示在网格中。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,comobj;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
eclApp,WorkBook:Variant;
//声明为OLE Automation 对象
xlsFileName:string;
begin
xlsFileName:='ex.xls';
try
//创建OLE对象Excel Application与 WorkBook
eclApp:=CreateOleObject('Excel.Application');
WorkBook:=CreateOleobject('Excel.Sheet');
except
ShowMessage('您的机器里未安装Microsoft Excel。');
Exit;
end;
try
ShowMessage('下面演示:新建一个XLS文件,并写入数据,最后关闭它。');
workBook:=eclApp.workBooks.Add;
eclApp.Cells(1 , 1):='字符型';
eclApp.Cells(2 , 1):='Excel文件';
eclApp.Cells(1 , 2):='Money型';
eclApp.Cells(2 , 2):=10.01;
eclApp.Cells(1 , 3):='日期型';
eclApp.Cells(2 , 3):=Date;
WorkBook.saveas(xlsFileName);
WorkBook.close;
ShowMessage('下面演示:打开刚创建的XLS文件,并修改其中的内容,然后,由用户决定是否保存。');
WorkBook:=eclApp.workBooks.Open(xlsFileName);
eclApp.Cells(2 , 1):='Excel文件类型';
if MessageDlg(xlsFileName+'文件已被修改,是否保存?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
WorkBook.save
else
workBook.Saved := True; //放弃修改
WorkBook.Close;
eclApp.Quit;
//退出Excel Application
//释放VARIANT变量
eclApp:=Unassigned;
except
ShowMessage('不能正确操作Excel文件。可能是该文件已被其他程序打开, 或系统错误。');
WorkBook.close;
eclApp.Quit;
//释放VARIANT变量
eclApp:=Unassigned;
end;
end;end.