关于delphi操作excel(150分)

  • 主题发起人 主题发起人 死神十三
  • 开始时间 开始时间
问题已经知道是哪句,但是还是不知道怎么解决
完整的代码是
procedure TForm1.Button2Click(Sender: TObject);
var i : integer;
begin
combobox1.Items.Clear;
xlapp := createoleobject('excel.application');
opendialog1.Filter := 'EXCEL工作表(*.xls)|*.xls';
if opendialog1.Execute then
begin
xlapp.workbooks.open(opendialog1.FileName);
end
else exit;
showmessage('请选择工作表');
For i:=1 to xlapp.Worksheets.Count do
ComboBox1.Items.Add(xlapp.Worksheets.Item.Name);
showmessage('aaa');

//xlapp := Unassigned;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
xlapp.worksheets[combobox1.text].activate;
xlapp.cells[1,1]:='abbbba';
xlapp.workbooks.close;
xlapp.quit;
xlapp := Unassigned;
end;

问题就出在xlapp.worksheets[combobox1.text].activate;,去处这句,没有excel进程
加上那么就关不掉excel进程
 
我怀疑是你的excel,或者系统的问题。
刚才我使用你的代码,没有做任何修改,点击按钮3,excel被关闭。程序运行很正常。
我在win2000,D7下测试。
 
差一点的电脑是进程关不掉
搂住可以考虑其他的算法
用text读取
或者通过dbgrid
 
要引用什么文件,createoleobject()才能生效?
我用了uses OleAuto ,但又说OLE2找不到
 
不错啊
学到东西了
 
你的Excel没有进行保存,建议使用临时表操作,最后再保存到你指定的文件
var
ExcelApp, OleWorkBook: Variant;
FileName: String; (含路径的文件名)

ExcelApp := CreateOleObject('Excel.Application');
ObjWorkBook := ExcelApp.WorkBooks.Add;
...
ExcelApp.cell[1,1] = ...等等操作
...
ObjWorkBook.SaveAs(FileName);
ExcelApp.quit
ObjWorkBook := unassigned;
ExcelApp := unassigned;
 
我的也有這樣的問題.在win200--D6下運行...點'取消'了後,會出現一個進程excel.exe
問題的出現是這個lapp.quit;
不過我加了個killexcel過程後可以...
 
多人接受答案了。
 

Similar threads

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