ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Getting pasted image reference (https://www.excelbanter.com/excel-programming/377782-getting-pasted-image-reference.html)

Urotsukidoji[_2_]

Getting pasted image reference
 

Hi,

it will be easy (I think).

I'm creating an Excel worksheet from a C# application. When I want t
insert an image in a cell of the worksheet, I use this code:


Code
-------------------

Excel.WorkSheet ws = (...);
Excel.Range logo = ws.get_Range("A1","F10");
logo.Merge(false);
logo.Select();
Image img = Image.FromFile("../images/logo.gif");
Clipboard.SetDataObject(img,false);
ws.Paste(logo,"../images/logo.gif");

-------------------


After inserting the image, and if the image has less width than th
cell, I want to align the image to the right. The image doesn't seem t
answer to cell's horizontal or vertical alignment, so I managed to do i
that way:


Code
-------------------

Excel.Shape shape = ws.Shapes.Item("Picture 1");
if ((shape != null)&&(shape.Width < (double)logo.Width)) {
shape.IncrementLeft((float)((double)logo.Width - shape.Width));
}

-------------------


The problem I had is, if there's already any picture in the worksheet
obviously the one pasted will not be called "Picture 1". I always ca
use the Shapes.Count to get the index of the last picture inserted an
get the correct name, but it seems dirty. So the question is, how woul
you do it? Maybe is a way to set an arbitrary name to the shape whe
pasting?

Thanks in advance

--
Urotsukidoj
-----------------------------------------------------------------------
Urotsukidoji's Profile: http://www.officehelp.in/member.php?userid=515
View this thread: http://www.officehelp.in/showthread.php?t=126605

Posted from - http://www.officehelp.i


JLGWhiz

Getting pasted image reference
 
Why an arbitrary name, use a name that tells what the shape is. i.e.
"Acme_Co_logo" or "Photo_of_me". Then you know what you are working with.

"Urotsukidoji" wrote:


Hi,

it will be easy (I think).

I'm creating an Excel worksheet from a C# application. When I want to
insert an image in a cell of the worksheet, I use this code:


Code:
--------------------

Excel.WorkSheet ws = (...);
Excel.Range logo = ws.get_Range("A1","F10");
logo.Merge(false);
logo.Select();
Image img = Image.FromFile("../images/logo.gif");
Clipboard.SetDataObject(img,false);
ws.Paste(logo,"../images/logo.gif");

--------------------


After inserting the image, and if the image has less width than the
cell, I want to align the image to the right. The image doesn't seem to
answer to cell's horizontal or vertical alignment, so I managed to do it
that way:


Code:
--------------------

Excel.Shape shape = ws.Shapes.Item("Picture 1");
if ((shape != null)&&(shape.Width < (double)logo.Width)) {
shape.IncrementLeft((float)((double)logo.Width - shape.Width));
}

--------------------


The problem I had is, if there's already any picture in the worksheet,
obviously the one pasted will not be called "Picture 1". I always can
use the Shapes.Count to get the index of the last picture inserted and
get the correct name, but it seems dirty. So the question is, how would
you do it? Maybe is a way to set an arbitrary name to the shape when
pasting?

Thanks in advance!


--
Urotsukidoji
------------------------------------------------------------------------
Urotsukidoji's Profile: http://www.officehelp.in/member.php?userid=5154
View this thread: http://www.officehelp.in/showthread.php?t=1266051

Posted from - http://www.officehelp.in



Urotsukidoji[_3_]

Getting pasted image reference
 

Thanks for your response!

What you say is what I was referring with "an arbitrary name". Th
problem is I don't know how to set the name of the shape when pastin
the image; that's it, when pasting excel automatically names the shap
as "Picture XXX" and I want to change that.

JLGWhiz;3977592 Wrote:
Why an arbitrary name, use a name that tells what the shape is. i.e.
"Acme_Co_logo" or "Photo_of_me". Then you know what you are workin
with.

"Urotsukidoji" wrote:


Hi,

it will be easy (I think).

I'm creating an Excel worksheet from a C# application. When I wan

to
insert an image in a cell of the worksheet, I use this code:


Code:
--------------------

Excel.WorkSheet ws = (...);
Excel.Range logo = ws.get_Range("A1","F10");
logo.Merge(false);
logo.Select();
Image img = Image.FromFile("../images/logo.gif");
Clipboard.SetDataObject(img,false);
ws.Paste(logo,"../images/logo.gif");

--------------------


After inserting the image, and if the image has less width than the
cell, I want to align the image to the right. The image doesn't see

to
answer to cell's horizontal or vertical alignment, so I managed to d

it
that way:


Code:
--------------------

Excel.Shape shape = ws.Shapes.Item("Picture 1");
if ((shape != null)&&(shape.Width < (double)logo.Width)) {
shape.IncrementLeft((float)((double)logo.Width - shape.Width));
}

--------------------


The problem I had is, if there's already any picture in th

worksheet,
obviously the one pasted will not be called "Picture 1". I alway

can
use the Shapes.Count to get the index of the last picture inserte

and
get the correct name, but it seems dirty. So the question is, ho

would
you do it? Maybe is a way to set an arbitrary name to the shape when
pasting?

Thanks in advance!


--
Urotsukidoji


------------------------------------------------------------------------
Urotsukidoji's Profile

http://www.officehelp.in/member.php?userid=5154
View this thread: http://www.officehelp.in/showthread.php?t=1266051

Posted from - http://www.officehelp.in



--
Urotsukidoj
-----------------------------------------------------------------------
Urotsukidoji's Profile: http://www.officehelp.in/member.php?userid=515
View this thread: http://www.officehelp.in/showthread.php?t=126605

Posted from - http://www.officehelp.i


NickHK

Getting pasted image reference
 
This will give you the name of the last picture added to the sheet.

With ActiveSheet.Pictures
MsgBox .Item(.Count).Name
End With

Note that Pictures actually includes other OLEObjects on the sheet also.
(I still have to see a good explanation of
Pictures/OLEObjects/Shapes/DrawingObjects, despite Peter T's best effort at
explaining.)

NickHK

"Urotsukidoji" wrote in message
...

Thanks for your response!

What you say is what I was referring with "an arbitrary name". The
problem is I don't know how to set the name of the shape when pasting
the image; that's it, when pasting excel automatically names the shape
as "Picture XXX" and I want to change that.

JLGWhiz;3977592 Wrote:
Why an arbitrary name, use a name that tells what the shape is. i.e.
"Acme_Co_logo" or "Photo_of_me". Then you know what you are working
with.

"Urotsukidoji" wrote:


Hi,

it will be easy (I think).

I'm creating an Excel worksheet from a C# application. When I want

to
insert an image in a cell of the worksheet, I use this code:


Code:
--------------------

Excel.WorkSheet ws = (...);
Excel.Range logo = ws.get_Range("A1","F10");
logo.Merge(false);
logo.Select();
Image img = Image.FromFile("../images/logo.gif");
Clipboard.SetDataObject(img,false);
ws.Paste(logo,"../images/logo.gif");

--------------------


After inserting the image, and if the image has less width than the
cell, I want to align the image to the right. The image doesn't seem

to
answer to cell's horizontal or vertical alignment, so I managed to do

it
that way:


Code:
--------------------

Excel.Shape shape = ws.Shapes.Item("Picture 1");
if ((shape != null)&&(shape.Width < (double)logo.Width)) {
shape.IncrementLeft((float)((double)logo.Width - shape.Width));
}

--------------------


The problem I had is, if there's already any picture in the

worksheet,
obviously the one pasted will not be called "Picture 1". I always

can
use the Shapes.Count to get the index of the last picture inserted

and
get the correct name, but it seems dirty. So the question is, how

would
you do it? Maybe is a way to set an arbitrary name to the shape when
pasting?

Thanks in advance!


--
Urotsukidoji

------------------------------------------------------------------------
Urotsukidoji's Profile:

http://www.officehelp.in/member.php?userid=5154
View this thread: http://www.officehelp.in/showthread.php?t=1266051

Posted from - http://www.officehelp.in




--
Urotsukidoji
------------------------------------------------------------------------
Urotsukidoji's Profile: http://www.officehelp.in/member.php?userid=5154
View this thread: http://www.officehelp.in/showthread.php?t=1266051

Posted from - http://www.officehelp.in





All times are GMT +1. The time now is 06:18 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com