query2.First;
for c1:=1 to query2.RecordCount do
begin
d4:=1;
for b1:=2 to query2.Fields.Count do
beginif not Query2.FieldByName('bjds12').IsNull then
begin JpegMap:=TJpegImage.Create;
blobstream:=TBlobStream.Create(TBlobField(Query2.FieldByName('bjds12')),bmRead);
try JpegMap.LoadFromStream(blobstream); dbImage1.Picture.BitMap.Assign(JpegMap);
// dbimage1.Picture.Bitmap.Height:=210;
// dbimage1.Picture.Bitmap.Width:=202;
dbimage1.CopyToClipboard; excelworkSheet1.Range[excelworksheet1.cells.item[b3+9,2],excelworksheet1.Cells.item[b3+9,2]].Select; excelworksheet1.Paste;
finally
jpegmap.free;
blobstream.free;
end;
end
else
dbimage1.picture:=nil;
b3:=b3+11;
end;
if c1=3 then
begin
b3:=b3+10;
end;
if (((c1 mod 3)=0) and (c1<>3))then
begin
b3:=b3+15;
end;
query2.Next;
end;
end;
這是我寫的原代碼,就是沒辦法在excel當中放小.不知道是不是excelworksheet1這個東東不支持呀..我錄了段宏想代里面的代碼但就是代不上.不知道為什么請各位指點一下吧.
for c1:=1 to query2.RecordCount do
begin
d4:=1;
for b1:=2 to query2.Fields.Count do
beginif not Query2.FieldByName('bjds12').IsNull then
begin JpegMap:=TJpegImage.Create;
blobstream:=TBlobStream.Create(TBlobField(Query2.FieldByName('bjds12')),bmRead);
try JpegMap.LoadFromStream(blobstream); dbImage1.Picture.BitMap.Assign(JpegMap);
// dbimage1.Picture.Bitmap.Height:=210;
// dbimage1.Picture.Bitmap.Width:=202;
dbimage1.CopyToClipboard; excelworkSheet1.Range[excelworksheet1.cells.item[b3+9,2],excelworksheet1.Cells.item[b3+9,2]].Select; excelworksheet1.Paste;
finally
jpegmap.free;
blobstream.free;
end;
end
else
dbimage1.picture:=nil;
b3:=b3+11;
end;
if c1=3 then
begin
b3:=b3+10;
end;
if (((c1 mod 3)=0) and (c1<>3))then
begin
b3:=b3+15;
end;
query2.Next;
end;
end;
這是我寫的原代碼,就是沒辦法在excel當中放小.不知道是不是excelworksheet1這個東東不支持呀..我錄了段宏想代里面的代碼但就是代不上.不知道為什么請各位指點一下吧.
ActiveWindow.SmallScroll ToRight:=2
ActiveWindow.SmallScroll Down:=6
Selection.ShapeRange.ScaleWidth 0.39, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.39, msoFalse, msoScaleFromTopLeft
ActiveWindow.SmallScroll Down:=-6
我把它改為
excelworkSheet1.shapes.rang[].ShapeRange.ScaleHeight(0.35,msoFalse, msoScaleFromTopLeft);
excelworkSheet1.shapes.rang[].ShapeRange.ScaleWidth(0.35,msoFalse, msoScaleFromTopLeft);
定義,msoFalse, msoScaleFromTopLeft:olevariant;
不知哪里不對.
//主要是利用OleVariant变量实现
uses Clipbrd, Office2000;procedure TForm1.Button1Click(Sender: TObject);
var
vSelection: OleVariant;
begin
Image1.Picture.LoadFromFile('c:\winnt\Greenstone.bmp');
Clipboard.Assign(Image1.Picture.Bitmap);
ExcelApplication1.Connect;
ExcelApplication1.Visible[0] := True;
ExcelApplication1.Workbooks.Add(Null, 0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet); ExcelWorksheet1.Range[ExcelWorksheet1.Cells.Item[9, 2],
ExcelWorksheet1.Cells.Item[9, 2]].Select;
ExcelWorksheet1.Paste; vSelection := ExcelApplication1.Selection[0];
vSelection.ShapeRange.ScaleWidth(0.53, msoFalse, msoScaleFromTopLeft);
vSelection.ShapeRange.ScaleHeight(0.53, msoFalse, msoScaleFromTopLeft);
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
end;