Delphi里edit1如何读取一个excel里某表格的内容??

thunderingman 2010-07-04 08:35:54
比如edit1.txt为aa.xls里sheet1 A2单元格内容?
...全文
331 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzc1124 2010-07-09
  • 打赏
  • 举报
回复
use comobj

var
ExcelApp: Variant;
begin
ExcelApp := CreateOleObject( 'Excel.Application' );
ExcelApp.WorkBooks.Open('路径加文件名‘);
ExcelApp.WorkSheets[1].Activate;
EDIT1.TEXT:= ExcelApp.Cells[1,4].Value ;
END;
kye_jufei 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lovelymelon 的回复:]
可以用servers控件组中excel控件直接操作

Delphi(Pascal) code

if self.OpenDialog1.Execute then
filename:=self.OpenDialog1.FileName;
if filename='' then
Exit;
try
Self.ExcelApplication1:=T……
[/Quote]
use comobj,樓上正解...
lovelymelon 2010-07-07
  • 打赏
  • 举报
回复
可以用servers控件组中excel控件直接操作

if self.OpenDialog1.Execute then
filename:=self.OpenDialog1.FileName;
if filename='' then
Exit;
try
Self.ExcelApplication1:=TExcelApplication.Create(Self);
Self.ExcelApplication1.Connect;
except
messagebox(application.Handle,'无法生成Excel报表,请确定安装了Excel后重试','信息',mb_ok or mb_iconinformation);
exit;
end;
Self.ExcelApplication1.Visible[0]:=False;
Self.ExcelApplication1.DisplayAlerts[0]:=False;
self.ExcelApplication1.Workbooks.Open(filename,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,0);
self.ExcelWorkbook1.ConnectTo(Self.ExcelApplication1.Workbooks[1]);
self.ExcelWorksheet1:=TExcelWorkSheet.Create(self);
self.ExcelWorksheet1.ConnectTo(Self.ExcelWorkbook1.Worksheets[1] as _worksheet);
//*****************************************

edit1.text:=Self.ExcelWorksheet1.Cells.Item[2,1];

TTEERREENNCCEE 2010-07-06
  • 打赏
  • 举报
回复
能直接读到的.
lyhoo163 2010-07-06
  • 打赏
  • 举报
回复
支持一下
fengemail8 2010-07-04
  • 打赏
  • 举报
回复
都是高手,建议看一下VBA
SuperTitan004 2010-07-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 thunderingman 的回复:]

eclApp := CreateOleObject('Excel.Application');
这句话什么意思,先说下需要放olecontainer控件么?
[/Quote]

这个需要uses ComObj;
thunderingman 2010-07-04
  • 打赏
  • 举报
回复
eclApp := CreateOleObject('Excel.Application');
这句话什么意思,先说下需要放olecontainer控件么?
thunderingman 2010-07-04
  • 打赏
  • 举报
回复
ado连接的话是只能读么 还是可以读和写的?
SuperTitan004 2010-07-04
  • 打赏
  • 举报
回复
也可以用ado连接,像读数据库一样读
Rubi 2010-07-04
  • 打赏
  • 举报
回复
如2楼,先创建Excel对象,读取制定单元格里面的值
ok1411 2010-07-04
  • 打赏
  • 举报
回复

var
strExcelName: string;
eclApp, sheet: Variant;
begin
try
eclApp := CreateOleObject('Excel.Application');
eclApp.workBooks.Open(strExcelName);
sheet := eclApp.WorkSheets[1];
except
Exit;
end;
edit1.txt := sheet.cells[2,1].value;
不用第三方控件,让richEdit支持图片与表格换行 DELPHI 6 提供的RICHEDIT是1.0,并不支持图片,对复杂表格也会乱成一团,如何在DELPHI原有控件的基础上做少量修改,使之支持显示图片与正确显示表格,其实只需要几行就好了,方法如下: 找到richEdit控件所在单元ComCtrls.pas (在SOURCE\VCL) //第一步 procedure TCustomRichEdit.CreateParams(var Params: TCreateParams); const // RichEditModuleName = 'RICHED32.DLL';//原来语句 // RichEditClassName = 'RICHEDIT'; //原来语句 RichEditModuleName = 'Msftedit.dll'; //改后语句 RichEditClassName = 'RichEdit50W'; //改后语句 //第二步 procedure TCustomRichEdit.CreateWnd; .... //加入一行要放在 CreateWnd 因为此时 HANDLE已建立 Perform(EM_SetOleCallback, 0, Longint(TRichEditOleCallback.Create(TRichEdit(self)) as IRichEditOleCallback)) ; //第三步 procedure TCustomRichEdit.WMRButtonUp(var Message: TWMRButtonUp); begin inherited; // RichEd20 does not pass the WM_RBUTTONUP message to defwndproc, // so we get no WM_CONTEXTMENU message. Simulate message here. // if Win32MajorVersion < 5 then //是原有1.0的要去掉 Perform(WM_CONTEXTMENU, Handle, LParam(PointToSmallPoint( ClientToScreen(SmallPointToPoint(Message.Pos))))); end; //第四步 procedure TRichEditStrings.Insert(Index: Integer; const S: string); .... //要去掉后面两名 // 1.0 uses, 2.0 will error happened 2011 // if RichEdit.SelStart (Selection.cpMax + Length(Str)) then //是原有1.0的要去掉 // raise EOutOfResources.Create(sRichEditInsertError); //是原有1.0的要去掉

2,508

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧