Embed an image in an .xls Excel sheet

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • code green
    Recognized Expert Top Contributor
    • Mar 2007
    • 1726

    Embed an image in an .xls Excel sheet

    I have written scripts that generate price lists on a .xls sheet.
    The price lists are written in HTML so I can embed an image easily using <img src .........

    But when the .xls leaves the local folder, ie emailed out,
    it can no longer 'see' the image because the src path is no longer valid.

    How are images permanently embedded in .xls? or HTML for that matter.
    The code behind is HTML so am I missing a trick somewhere?
  • Atli
    Recognized Expert Expert
    • Nov 2006
    • 5062

    #2
    You can embed images into a <img> tag by doing:
    [code=html]<img src="data:[mime-type],[data]" alt="" />[/code]

    For example, to display a 16x16 PNG filled with red (borrowed from the W3C html validation site):
    [code=html]<img alt="Red square" src="data:image/png,%89PNG%0D%0 A%1A%0A%00%00%0 0%0DIHDR%00%00% 00%10%00%00%00% 10%08%02%00%00% 00%90%91h6%00%0 0%00%19IDAT(%91 c%BCd%AB%C2%40% 0A%60%22I%F5%A8 %86Q%0DCJ%03%00 %DE%B5%01S%07%8 8%8FG%00%00%00% 00IEND%AEB%60%8 2" />[/code]

    All modern browsers and email clients should be able to understand this.
    IE versions 7 and up should be able to handle it to.
    Not sure about Outlook tho.

    Comment

    • code green
      Recognized Expert Top Contributor
      • Mar 2007
      • 1726

      #3
      Ah I see.
      The example I am looking at uses VML and seems to designate a path
      Code:
      if gte vml 1]><v:shapetype
         id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
         path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
      Then the image source quotes only the directory and the file
      Code:
      <img width=800 height=190
        src="Pricelist-0409_files/image002.jpg" v:shapes="Picture_x0020_5">
      I assume what is happening here is the url is embedded and the image is being downloaded from a remote server

      Comment

      • Atli
        Recognized Expert Expert
        • Nov 2006
        • 5062

        #4
        I don't know the first thing about VML, so I can't really say much about that.

        Nor about Excel documents, really, but I do know that embedding images, the way I did, is not very popular in emails because Outlook's HTML rendering engine is behind that standards by a couple of decades, and therefore lacks the ability to render them correctly.

        So unless this VML markup language has some other way of embedding them, it really only leaves it using remote URLs.

        Comment

        • code green
          Recognized Expert Top Contributor
          • Mar 2007
          • 1726

          #5
          I don't know the first thing about VML
          Me neither!
          I may use remote URLs until I can figure out this VML.

          Comment

          • Atli
            Recognized Expert Expert
            • Nov 2006
            • 5062

            #6
            Originally posted by code green
            Me neither!
            I may use remote URLs until I can figure out this VML.
            I would check out SVG instead.

            I don't know that one either, but it was apparently developed by the W3C after M$ and several others tried to get their version of this standardized.


            Originally posted by Wikipedia
            VML was submitted as a proposed standard to the W3C in 1998 by Microsoft, Macromedia, and others.[1]
            Around the same time other competing W3C submissions were received in the area of web vector graphics, such as PGML from Adobe Systems, Sun Microsystems, and others.[2] As a result of these submissions, a new W3C working group was created, which produced SVG.

            Comment

            • code green
              Recognized Expert Top Contributor
              • Mar 2007
              • 1726

              #7
              Thanks Atli, I will check out this SVG.
              But it would be no suprise to find that Microsoft has crippled this when used in .xls.

              Comment

              • Atli
                Recognized Expert Expert
                • Nov 2006
                • 5062

                #8
                Yea, your right. That wouldn't exactly come as a great shock :)

                There is an alternative to that to, you know. Several, actually.
                I like OpenOffice.org.
                It can even handle a lot of the M$ Office formats.

                Comment

                Working...