怎么作都不行,需要在已在存在表中再写入数据,结果按说明去操作,问题多多;基本的源代码如下
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ExcelApp:=CreateOleObject('Excel.application');//不加这行,下面的open方法无效,ExcelAPP是全局变量,在另一 个 地方已创建了
ExcelApp.WorkBooks.Open(extractfilepath(application.ExeName)+'Demo1.xls');
ExcelApp.Workbooks.add;
ExcelApp.Visible:=false;
ExcelApp.Cells[3,2].value:=edit1.text;
ExcelApp.Cells[5,2].value:=edit2.text;
ExcelApp.Cells[7,2].value:=edit3.text;
ExcelApp.ActiveWorkBook.SaveAs(extractfilepath(application.ExeName)+'Demo1.xls');//这里保存也是问题,不让存讲重名
// if not ExcelApp.ActiveWorkBook.Saved then
// ExcelApp.ActiveSheet.PrintPreview;//这种方法来保存,基本就长G了程序,动不了了
ExcelApp.Quit;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ExcelApp:=CreateOleObject('Excel.application');//不加这行,下面的open方法无效,ExcelAPP是全局变量,在另一 个 地方已创建了
ExcelApp.WorkBooks.Open(extractfilepath(application.ExeName)+'Demo1.xls');
ExcelApp.Workbooks.add;
ExcelApp.Visible:=false;
ExcelApp.Cells[3,2].value:=edit1.text;
ExcelApp.Cells[5,2].value:=edit2.text;
ExcelApp.Cells[7,2].value:=edit3.text;
ExcelApp.ActiveWorkBook.SaveAs(extractfilepath(application.ExeName)+'Demo1.xls');//这里保存也是问题,不让存讲重名
// if not ExcelApp.ActiveWorkBook.Saved then
// ExcelApp.ActiveSheet.PrintPreview;//这种方法来保存,基本就长G了程序,动不了了
ExcelApp.Quit;
end;
解决方案 »
- 一个DBGRIDEH导出到Excel很容易,但如果要多个DBGRIDEH导出到一个EXECL能做吗?
- 怎么对toolbar上的一个toolbutton发送点击消息?
- 帮看看这个语法错在哪里
- 关于Indy,或者ClientSocket发送PChar类型的数据的方法,谢谢!
- 用TADOStoredProc执行一个存储过程后,怎么把sqlcode取出来呢?
- 各位谁能给我一个例子,在一个exe中调用一个package中的子窗口.
- 问两个关于报表的问题。同志们我可是出血了,100大分啊。请你们尽力帮帮我(内详)。
- 怎样用控件NMSMTP发送支持HTML格式的邮件?
- 怎样根据日期求月份
- 用方向键控制焦点跳转问题?
- 动态数组和静态数组的问题
- 关于clientsocket和serversocket通信的问题
前面已经是ExcelApp.WorkBooks.Open(extractfilepath(application.ExeName)+'Demo1.xls'); 了
ExcelApp.ActiveWorkBook.Saved:=true;
不行,这下也不挂机了,也没有错误显示了,但是没有数据保存进去;
如果EXCEL已经存在了就用ExcelApp.ActiveWorkBook.Save
如果不存在就用ExcelApp.ActiveWorkBook.SaveAs
这个只是标记你是不是已经存了
没什么用的
一般是你不准备保存而想退出的时候把这个设为TRUE,不然你退出的时候他会询问你是否保存,但是如果你EXCEL没有显示出来的话就会造成假死现象而导致程序无法操作
我知道了
ExcelApp.Workbooks.add;这个错了
你既然打开一个已经存在了的就不应该再加WORKBOOK了,最多加WORKSHEET
var
xlsPath:string;
begin
xlsPath:=extractfilepath(application.ExeName)+'Demo1.xls';
ExcelApp:=CreateOleObject('Excel.application'); ExcelApp.WorkBooks.Open(xlsPath);//打开已存在的Excel,就不需要用add
ExcelApp.Cells[3,2].value:=edit1.text;
ExcelApp.Cells[5,2].value:=edit2.text;
ExcelApp.Cells[7,2].value:=edit3.text;
ExcelApp.DisplayAlerts:=false;//取消覆盖提示
ExcelApp.WorkBooks[1].saveas(xlsPath);
ExcelApp.Quit;
ExcelApp:=Unassigned;
end;