我用EXCEL作为DELPHI的报表输出,但怎样才能真正关闭EXCEL,请高手帮忙。 其实也可以不用关闭Excel的; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在vb中也遇到这中情况但是我用excelid.quit是可以关闭的 请各位大虾帮个忙,我真的要用。还有一个问题当写下以下语句后Excelid.Cells[j+1,i+1]:='111111111111111111111111111111111111';EXCEL单元格中显示 1.11111111111111E+20我把列宽拉得再长也没用,而一般长度的只需拉长就可能恢复成数字我想能不能事先在将ExcelID当前单元设为“文本”型,而不是默认的“常规”值,请问语句该如何写? 第一个问题我已解了 在EXCELID.QUIT 后加一条 excelid:=Unassigned; 就可以真正关闭EXCEL,下面那个问题请大家帮忙,真的很急。当写下以下语句后Excelid.Cells[j+1,i+1]:='111111111111111111111111111111111111';EXCEL单元格中显示 1.11111111111111E+20我把列宽拉得再长也没用,而一般长度的只需拉长就可能恢复成数字我想能不能事先在将ExcelID当前单元设为“文本”型,而不是默认的“常规”值,请问语句该如何写? Excelid.Cells[j+1,i+1].numberformat:='@';好象加了这一句后转换速度会慢一些。 用这种方法,还是没有完全搞定。有的单元格行,有的单元格不行。我所要格式化的信息都是 14位的考号信息,还请大家帮忙。如有高手详细介绍一下用代码对EXCEL单元格格式进行操作的话,一定重分酬谢!!!! 最好全部用上。 ExcelApplication1.Quit; ExcelWorksheet1.Disconnect; ExcelWorkbook1.Disconnect; ExcelApplication1.Disconnect; to:SMALLFANGZI(官才)请问:用上述方法怎么不行,具体些,在我这里全部都没问题的。 我的程序如下,想把QUERY2的查询结果输出至EXCEL,procedure Tfstate_order.BitBtn2Click(Sender: TObject);VAR i,j:integer; ExcelID: Variant;begin//打开保存文件对话框 savedialog1.Filter := 'EXCEL文件(*.xls)|*.xls|All files (*.*)|*.*'; savedialog1.FilterIndex := 1; { start the dialog showing all files } savedialog1.Execute;//建立excel对象try ExcelID := CreateOleObject( 'Excel.Application' );EXCEPT showmessage('你的机子上没有安装EXCEL,无法使用该功能,'+#13+' 请先安装EXCEL!'); exit;END; ExcelID.Visible := True; ExcelID.Caption := '应用程序调用 Microsoft Excel'; //增加工作表 ExcelID.WorkBooks.Add;//更改标题 query2.first; for i:=0 to query2.RecordCount-1 do //控制行 begin for j:=0 to query2.FieldCount-1 do //控制列 begin try if j=1 then {//第二个字段名为考生号,字符型的CHAR(14),由数字字符串组成,如‘01652909151001’} begin Excelid.Cells[j+1,i+1].numberformat:='@'; Excelid.Cells[i+1,j+1]:=query2.Fields[j].asstring; end else begin //其余字段常规显示 Excelid.Cells[i+1,j+1]:=query2.Fields[j].asstring; end; except showmessage('数据导出期间请不要动EXCEL'); end; end; query2.Next; end;//写入内容 excelid.activeworkbook.saveas(savedialog1.FileName); excelid.workbooks.close;//保存文件 excelid.quit; excelid:=unassigned;// excelid.disconnect;end;输出的结果会出现这些情况: 01350502150742 01350502122345 1.3538E+12 1.3528E+12 1.35048E+12 01350502150742有的单元格的 前面的0被截掉,搞不懂为什么 请问delphi如何扫描程序的所有内存 sqlserver中超时问题 求教关于radiogroup的用法 如何解析chm文件中每页的标题名? application.showmainform:=true. dbExpress问题,SQLQuery只可处理6个字段? why 装了一个Delphi7 Enterprise,结果有些部件用不了,怎么回事??郁闷!!! 100分相送! 如何使窗口全屏显示? 为什么我这样写看不到图标? 这个问题(关于窗口)怎样解决? delphi做截获api好象不是很顺手,我想学汇编,用汇编+delphi做病毒防火墙,大家觉得能做不?
但是我用excelid.quit是可以关闭的
还有一个问题
当写下以下语句后
Excelid.Cells[j+1,i+1]:='111111111111111111111111111111111111';
EXCEL单元格中显示 1.11111111111111E+20
我把列宽拉得再长也没用,而一般长度的只需拉长就可能恢复成数字我想能不能事先在将ExcelID当前单元设为“文本”型,而不是默认的“常规”值,请问语句该如何写?
在EXCELID.QUIT
后加一条 excelid:=Unassigned;
就可以真正关闭EXCEL,下面那个问题请大家帮忙,真的很急。当写下以下语句后
Excelid.Cells[j+1,i+1]:='111111111111111111111111111111111111';
EXCEL单元格中显示 1.11111111111111E+20
我把列宽拉得再长也没用,而一般长度的只需拉长就可能恢复成数字我想能不能事先在将ExcelID当前单元设为“文本”型,而不是默认的“常规”值,请问语句该如何写?
好象加了这一句后转换速度会慢一些。
有的单元格行,有的单元格不行。
我所要格式化的信息都是 14位的考号信息,还请大家帮忙。
如有高手详细介绍一下用代码对EXCEL单元格格式进行操作的话,一定重分酬谢!!!!
ExcelApplication1.Quit;
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
请问:用上述方法怎么不行,具体些,在我这里全部都没问题的。
procedure Tfstate_order.BitBtn2Click(Sender: TObject);
VAR
i,j:integer;
ExcelID: Variant;
begin
//打开保存文件对话框
savedialog1.Filter := 'EXCEL文件(*.xls)|*.xls|All files (*.*)|*.*';
savedialog1.FilterIndex := 1; { start the dialog showing all files }
savedialog1.Execute;//建立excel对象
try
ExcelID := CreateOleObject( 'Excel.Application' );
EXCEPT
showmessage('你的机子上没有安装EXCEL,无法使用该功能,'+#13+' 请先安装EXCEL!');
exit;
END; ExcelID.Visible := True;
ExcelID.Caption := '应用程序调用 Microsoft Excel';
//增加工作表
ExcelID.WorkBooks.Add;
//更改标题
query2.first;
for i:=0 to query2.RecordCount-1 do //控制行
begin
for j:=0 to query2.FieldCount-1 do //控制列
begin
try
if j=1 then {//第二个字段名为考生号,字符型的CHAR(14),由数字字符串组成,如‘01652909151001’}
begin
Excelid.Cells[j+1,i+1].numberformat:='@';
Excelid.Cells[i+1,j+1]:=query2.Fields[j].asstring;
end
else
begin //其余字段常规显示
Excelid.Cells[i+1,j+1]:=query2.Fields[j].asstring;
end;
except
showmessage('数据导出期间请不要动EXCEL');
end;
end;
query2.Next;
end;
//写入内容
excelid.activeworkbook.saveas(savedialog1.FileName);
excelid.workbooks.close;
//保存文件
excelid.quit;
excelid:=unassigned;
// excelid.disconnect;
end;输出的结果会出现这些情况:
01350502150742
01350502122345
1.3538E+12
1.3528E+12
1.35048E+12
01350502150742
有的单元格的 前面的0被截掉,搞不懂为什么