如何将图片作为值写入excel的一个字段中 ( 积分: 100 )

  • 主题发起人 主题发起人 zxxsnh
  • 开始时间 开始时间
Z

zxxsnh

Unregistered / Unconfirmed
GUEST, unregistred user!
如何才能将一个图片 比如 c:/aa.bmp 作为一个值写入到excel的一个字段里呢?谢谢[:(][?]
 
如何才能将一个图片 比如 c:/aa.bmp 作为一个值写入到excel的一个字段里呢?谢谢[:(][?]
 
读出图片后以长字符串方式写入excel
function BlobContentToString(const FileName: string): string;
begin
with TFileStream.create(FileName, fmOpenRead) do
try
SetLength(Result, Size);
Read(Pointer(Result)^, Size);
finally
Free;
end ;
end ;
之后调用上面的函数
string:=BlobContentToString('你的图片名') ;
在把string存到excel里就搞定
 
不是的,我想在导出的excel中还要看到图片的 bmp的图片
不过你的方法运行的没问题,只是我没把问题说清楚
就是写进去之后打开excel的文件能在单元格中看到图片,就像在excel中插入的一样
 
问题挺急的,高手帮帮忙
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=759711
 
KeyLife富翁笔记
作者?: hots
标题?: 数据库图片插入到excel中
关键字: blob,excel,流
分类?: 成功心得
密级?: 公开
(评分: , 回复: 0, 阅读: 57) »»
原理,我现在还没有找到更好的方法,不过次方法经过验证,是绝对可行的,并且应用在:韩国浦铁项目中的员工档案导出功能中。
因为用到了粘贴板,所以uses:clipbrd
var
MyFormat:Word;
AData:THandle; //临时句柄变量。
APalette:HPALETTE; //临时变量。
Stream1:TMemoryStream;//TBlobStream
xx:tbitmap;
Stream1:= TMemoryStream.Create;
TBlobField(query.FieldByName('存储图片的字段')).SaveToStream(Stream1);
Stream1.Position :=0;
xx:=tbitmap.Create ;
xx.LoadFromStream(Stream1);
xx.SaveToClipboardFormat(MyFormat,AData,APalette);
ClipBoard.SetAsHandle(MyFormat, AData);
myworksheet1.Range['g3','h7'].select;//myworksheet1是当前活动的sheet页
myworksheet1.Paste;


 
非常非常的感谢
 
多人接受答案了。
 
后退
顶部