欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

如何在excel的单元格中插入图片?

终极管理员 知识笔记 33阅读

前段时间做了一个winform Excel的插件程序,读取数据库中的图像字段后会显示在Excel中。我在csdn上看到过几个问题,现在把我的一些代码贴出来,分享给有需要的朋友。我的是excel的插件程序,基于vs.net 2003的Addin项目,也适用于vsto程序。您需要添加对COM组件-Microsoft Excel 11.0对象库的引用。代码的核心是图片的转换和设置excel显示图片的单元格。此方法转换图片,传入excel工作簿对象并将其转换为字符图像字段。privatewidextractppicture(Excel。Workbookp_Workbook,stringp _ imageStr){ byte[]v _ Bytes=Convert。from base 64 string(p _ imageStr);if(v_Bytes。length 0){;=new(p_Workbook。全名。jpeg ');BinaryWriterv/span>/span>/span>/span>/span>=

> /span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">new/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> BinaryWriter(v_);
        /span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">for/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">(/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">int/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> i/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">0/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">;i/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"></span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">v_Bytes.Length;i/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"/span>/span>/span>/span>span class="xzm_is" data-txt="#2B#2B#3C"/span>/span>/span>/span>/span>/span/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)
        {
            v/span>/span>/span>/span>/span>.Write(v_Bytes[i]);
        }
        v/span>/span>/span>/span>/span>.Close();
        v_();
    }
} /span>/span>/span>/span>span style="font-size: 10pt; font-family: Courier">下面这个方法在Excel中设置图片位置。/span>/span>/span>/span>/span>
/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">private/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">void/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"/span>/span>/span>(Excel.Workbook p_Workbook, Excel.Worksheet p_Worksheet, /span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">string/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> p_strRangeName)
{
    Excel.Pictures v_Pictures /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (Excel.Pictures)p_Worksheet.Pictures(Type.Missing);
    Excel.Picture v_Picture /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> v_Pictures.Insert(p_Workbook.FullName /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"/span>/span>span class="xzm_is" data-txt="#2B#3C"/span>/span>/span>/span/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">"/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">.jpeg/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">"/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">, Type.Missing);
    /span>/span>/span>/span>span style="color: rgba(0, 128, 0, 1)">///span>/span>/span>/span>span style="color: rgba(0, 128, 0, 1)"> Excel的get_Range方法可以得到Excel的单元格,可以用来设置图片显示的位置/span>/span>/span>/span>span style="color: rgba(0, 128, 0, 1)"/span>/span>/span>/span>br/span>/span>/span>/span>/span/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">    Excel.Range v_Range /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> p_Worksheet.get_Range(p_strRangeName, Type.Missing);
    /span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> v_fFactor /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">1/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">;
    /span>/span>/span>/span>span style="color: rgba(0, 128, 0, 1)">///span>/span>/span>/span>span style="color: rgba(0, 128, 0, 1)">设置图片/span>/span/span>/span/span>/span>/span>/span>span style="color: rgba(0, 128, 0, 1)"/span>/span>/span>/span>br/span>/span>/span>/span>/span/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">    /span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">if/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (v_Picture.Width /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">*/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Range.Height /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">>/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> v_Picture.Height /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">*/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Range.Width)
        v_fFactor /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Range.Width /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">//span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Picture.Width;
    /span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">else/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"/span>/span>/span>/span>br>         v_fFactor /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Range.Height /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">//span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Picture.Height;
    v_Picture.Left /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Range.Left /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"/span>/span>span class="xzm_is" data-txt="#2B#3C"/span>/span>/span>/span/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> ((/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Range.Width /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">-/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (v_Picture.Width /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">*/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> v_fFactor)) /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">//span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">2/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"/span>/span>span class="xzm_is" data-txt="#2B#3C"/span>/span>/span>/span/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">1/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">;
    v_Picture.Top /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Range.Top /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"/span>/span>span class="xzm_is" data-txt="#2B#3C"/span>/span>/span>/span/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> ((/span>/span>/span>/span>span style="color: rgba(0, 0, 255, 1)">double/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">)v_Range.Height /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">-/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> (v_Picture.Height /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">*/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> v_fFactor)) /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">//span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">2/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"/span>/span>span class="xzm_is" data-txt="#2B#3C"/span>/span>/span>/span/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">1/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">;
    v_Picture.Width /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> v_Picture.Width /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">*/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> v_fFactor /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">-/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">0.5d/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">;
    v_Picture.Height /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">=/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> v_Picture.Height /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">*/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> v_fFactor /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">-/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)"> /span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">0.5d/span>/span>/span>/span>span style="color: rgba(0, 0, 0, 1)">;
}/span>/span>/span>/span>/span>
/span>/span>/span>/span>/div>

标签:
声明:无特别说明,转载请标明本文来源!