数据库中的BLOB字段怎么导入到excel中去 (100分)

  • 主题发起人 主题发起人 snowrain
  • 开始时间 开始时间
S

snowrain

Unregistered / Unconfirmed
GUEST, unregistred user!
具体来说是access中的ole对象,我用来存放照片(存放二进制数据),
采用直接调用ole的方法导入到一个新的excel文件
程序段为
.....
ExcelApp:=CreateOleObject('Excel.Application');
label1.Caption:='正在导入数据...';
MyWorkBook:=CreateOleobject('Excel.Sheet');
except
application.Messagebox('无法打开Xls文件,请确认已 经安装EXCEL.',
'',mb_OK+mb_IconStop);
Exit;
end;
MyworkBook:=ExcelApp.workBooks.Add;
MyWorkBook.WorkSheets[1].cells[1,1].value:='NO'
......
MyWorkBook.WorkSheets[1].cells[i,8].value:=(adotable1.fieldbyname('Photo') as TBlobField).AsVariant;
上面这个赋值会出错,但是我不知道应该怎么将Photo字段导入到excel中,
请大侠们帮助!
 
版主,帮帮我!
各位牛人,帮我看看该怎么办!
 
我想是不是可以这样:
1.先将ole字段中的内容存为一个临时图片文件
2.在调用excel的ActiveSheet.Pictures.Insert方法将这个文件插入excel中
 
有没有可以直接一点的方法?
 
to jihenglixin:
“在调用excel的ActiveSheet.Pictures.Insert方法将这个文件插入excel中”
但是我不能指定cells的序号了?我每个记录都有一个图片,应该怎么insert呀?

 
我怎么找不到pictures这一项啊?
 
//一点心得
2.在数据库中存取图象
{存图象}
procedure TForm1.Button1Click(Sender: TObject);
var
pic:TBitmap;
stream:TmemoryStream;
begin
pic:=TBitmap.Create;
stream:=TmemoryStream.Create;
pic.LoadFromFile('D:/delphi_t/vache.bmp');
pic.SaveToStream(stream);
table.Append;
TBlobField(table.FieldByName('pic')).LoadFromStream(stream);
table.Post;
pic.Free;// important!
stream.Free;// important!
end;

{取图象}
procedure TForm1.Button2Click(Sender: TObject);
var
stream:TStream;
pic:TBitmap;
begin
stream:=table.createblobstream(table.fieldbyname('pic'),bmread);
pic:=TBitmap.Create;
pic.LoadFromStream(stream);
image1.Picture.Bitmap:=pic;
pic.Free;// important!
stream.Free;// important!
end;


4. 存取大文件到 数据库中
{存}
procedure TForm1.Button1Click(Sender: TObject);
var
mf:TFileStream;
begin

if( opendlg.Execute ) then
mf:=TFileStream.Create( opendlg.FileName,fmOpenRead )
else
begin
mf.Free;
exit;
end;
mf.Position:=0;
table.Append;
TBlobField(table.FieldByName('pic')).LoadFromStream(mf);
table.Post;
mf.Free;
end;
{取}
var
stream:TStream;
begin
stream:=table.createblobstream(table.fieldbyname('pic'),bmread);
memo1.Lines.LoadFromStream(stream);

stream.Free;
end;
 
谢谢yanyandt2的回答,你的回答很有价值,
但是仍未解决数据库中的BLOB字段怎么导入到excel中去这个问题

请教各位学习DELPHI的朋友以及斑竹!
 
难道没有朋友可以帮帮我?版主?
 
后退
顶部