关于excel的控件TExcelApplication的使用问题???急急急!!!(100分)

  • 主题发起人 主题发起人 wanggy
  • 开始时间 开始时间
W

wanggy

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用delphi自带的TExcelApplication控件
连接打开excel
ExcelApplication1.Connect;
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';
ExcelApplication1.Workbooks.Open('E:Book1.xls',
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
但是调用单元内容时出错,如何调用单元的内容?
象不是用控件事一样

var
MSExcel:Variant;//定义一个全程变量
MSExcel := CreateOleObject('Excel.Application');
MSExcel.WorkBooks.Open('E:Book1.xls');//创建一个OleObject
showmessage(MSExcel.Cells[1,2].Value);
 
例:
//对某一单元格进行赋值及取值
procedure TForm1.tosellsClick(Sender: TObject);
begin
if (SpinEdit2.Value>0) and (SpinEdit1.Value>0) then
ExcelWorksheet1.Cells.Item[SpinEdit2.Value, SpinEdit1.Value] := Edit1.Text;
end;

procedure TForm1.toEditClick(Sender: TObject);
begin
if (SpinEdit2.Value>0) and (SpinEdit1.Value>0) then
Edit1.Text := ExcelWorksheet1.Cells.Item[SpinEdit2.Value, SpinEdit1.Value];
end;
 
linsb谢谢!!
能否在告知!如何打印、预览excel文件吗??稍后把分给你!!
 
打印预览工作表:
ExcelApplication1.ActiveSheet.PrintPreview;
打印输出工作表:
ExcelApplication1.ActiveSheet.PrintOut;
 
linsb:
我也是这样写的但是提示出错,说没有PrintPreview、PrintOut方法??
 
你是不是要把数据库里的数据转EXCEL?还是只要调用出一个空的EXCEL?
 
fwcy:
我已经把可以把数据调入excel中了,但不想
通过启动excel后通过excel打印,我想按打印
按钮即可打印!
 
我觉得这样的方法挺慢的,但是我还没找到快点的方法
关注
 
chenyscar:
如果找到通知我!多谢!!!
 
多人接受答案了。
 
给分吧,这样解决!
procedure Tfm_bf.BitBtn1Click(Sender: TObject);
var row, i: integer;
begin
if SaveDialog1.Execute then
begin
ExcelApplication1.Connect;
ExcelApplication1.Workbooks.Add(Null, 0);
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Sheets[1] as _WorkSheet);

{以下是EXCEL的列名}
ExcelWOrkSheet1.Cells.Item[1, 1] := '银行帐号';
ExcelWOrkSheet1.Cells.Item[1, 2] := '姓名';
ExcelWOrkSheet1.Cells.Item[1, 3] := '工资';
{以下是获取数据}
query1.Close;
Query1.SQL.Clear;
query1.SQL.Add('select * from gz ');
Query1.Prepare;
query1.ExecSQL;


row := 2;

while not Query1.Eof do
begin
for i := 0 to Query1.Fields.Count - 1 do
begin
ExcelWOrkSheet1.Cells.Item[row, i + 1] := Query1.Fields.AsString;
end;
row := row + 1;
Query1.Next;
end;



ExcelWorkBook1.SaveCopyAs(SaveDialog1.FileName);
ExcelWOrkBook1.Close(false);

ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
Screen.Cursor := crDefault;
Application.MessageBox('保存完毕!', '消息', 0);
end;

 

Similar threads

I
回复
0
查看
847
import
I
I
回复
0
查看
610
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部