L
liaotw
Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位大侠:
我在使用DELPHI的过程中,有时因需要,将DBGRID中的数据导出到EXCEL中,
我用的方法是首先将数据复制到粘贴板上,然后声明一个VARIANT变量(excelapplication),
实现一个EXCEL应用,非常奇怪的是,对于在EXCEL中,对各个CELLS[I,J]可以进行COPY操
作,却无法进行PASTE操作。不知怎么样才能将粘贴板上的数据粘贴到EXCEL中。
此时在程序打开的EXCEL应用中,按CTRL+V键,可以实现粘贴功能,但是,对于各
个CELL中的数据,当全为数字时,EXCEL将它作为整数或者实数进行处理。导致如物料代码
等信息如:“0000256”的信息变成了“256”,怪模怪样。(此方法进行数据的导出,那好象
是最快的了。)
此两个问题,我想了很旧都没有得到解决。希望有人能给我一个满意的答案。我的代码如下:
var
excelapp,sheet,columnrange:variant;
i,j,k,m:integer;
str:string;
begin
if not(jgj.Active) then
begin
exit;
end;
try
screen.cursor:=crhourglass;
jgj.DisableControls;
//将数据复制到粘贴板
str:='';
j:=jgj.fieldcount-1;
k:=jgj.RecordCount;
for i:=0 to j do
str:=str+jgj.fields.fieldname+char(9);
str:=str+char(13);
jgj.First;
while not(jgj.eof) do
begin
for i:=0 to j do
str:=str+jgj.Fields.AsString+char(9);
str:=str+char(13);
jgj.next;
end;
clipboard.Clear;
clipboard.Open;
clipboard.astext:=str;
clipboard.Close; //数据已经到了粘贴板
//将数据转移到EXCEL文件当中。
excelapp:=createoleobject('excel.application');
excelapp.visible:=true;
excelapp.workbooks.add(-4167);
sheet:=excelapp.workbooks[1].worksheets[1];
sheet.name:='DeLight_Data';
sheet.cells[1,1].paste; //此句出错!!!!!
我在使用DELPHI的过程中,有时因需要,将DBGRID中的数据导出到EXCEL中,
我用的方法是首先将数据复制到粘贴板上,然后声明一个VARIANT变量(excelapplication),
实现一个EXCEL应用,非常奇怪的是,对于在EXCEL中,对各个CELLS[I,J]可以进行COPY操
作,却无法进行PASTE操作。不知怎么样才能将粘贴板上的数据粘贴到EXCEL中。
此时在程序打开的EXCEL应用中,按CTRL+V键,可以实现粘贴功能,但是,对于各
个CELL中的数据,当全为数字时,EXCEL将它作为整数或者实数进行处理。导致如物料代码
等信息如:“0000256”的信息变成了“256”,怪模怪样。(此方法进行数据的导出,那好象
是最快的了。)
此两个问题,我想了很旧都没有得到解决。希望有人能给我一个满意的答案。我的代码如下:
var
excelapp,sheet,columnrange:variant;
i,j,k,m:integer;
str:string;
begin
if not(jgj.Active) then
begin
exit;
end;
try
screen.cursor:=crhourglass;
jgj.DisableControls;
//将数据复制到粘贴板
str:='';
j:=jgj.fieldcount-1;
k:=jgj.RecordCount;
for i:=0 to j do
str:=str+jgj.fields.fieldname+char(9);
str:=str+char(13);
jgj.First;
while not(jgj.eof) do
begin
for i:=0 to j do
str:=str+jgj.Fields.AsString+char(9);
str:=str+char(13);
jgj.next;
end;
clipboard.Clear;
clipboard.Open;
clipboard.astext:=str;
clipboard.Close; //数据已经到了粘贴板
//将数据转移到EXCEL文件当中。
excelapp:=createoleobject('excel.application');
excelapp.visible:=true;
excelapp.workbooks.add(-4167);
sheet:=excelapp.workbooks[1].worksheets[1];
sheet.name:='DeLight_Data';
sheet.cells[1,1].paste; //此句出错!!!!!