如何导出图片到EXCEL中

本文介绍了一种方法,通过网络请求获取图片流,并使用.NET框架将其转换为Bitmap对象,进而获取图片的高度和宽度。接着,演示如何将图片作为Excel表格中的图片插入,并调整其大小。最后讨论了在导出过程中遇到的问题及其可能的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面已经说了如何导出EXCEL,这里就不重复说明。

首先我们要得到图片的路径 filename;这个路径可能是网络图片,可能是fusionCharts或者ECharts等等,这个就根据项目具体情况来看了。

    /// <summary>ljr 
    /// webservice 获取图片的流,并且返回图片的高度宽度
    /// </summary>
    /// <returns></returns>
    [DirectMethod]
    private System.IO.Stream getStream(string filename, out string height, out string width)
    {

        System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(filename);
        webRequest.Method = "GET";
        System.Net.HttpWebResponse webResponse = (System.Net.HttpWebResponse)webRequest.GetResponse();
        System.IO.Stream s = webResponse.GetResponseStream();
        List<byte> list = new List<byte>();
        while (true)
        {
            int data = s.ReadByte();
            if (data == -1)
                break;
            else
            {
                byte b = (byte)data;
                list.Add(b);
            }
        }
        byte[] bb = list.ToArray();
        System.IO.Stream stream = new System.IO.MemoryStream(bb);
        System.Drawing.Bitmap img = new System.Drawing.Bitmap(stream);
        height = img.Height.ToString();
        width = img.Width.ToString();
        return stream;

    }


导出图片的代码:

             /ljr  增加图片行 getStream方法传入图片路径即可
                string height = "", width = "";
             System.IO.Stream st = getStream(imgUrl, out height, out width);
     ws.Shapes.AddPicture(0, 0, st, 100, 6);//这里参数可以自行查看提示。图片所占的单元格,100表示占宽度的100%,但是高度不知道是占什么的百分比

         var imgRange = ws.Cells.CreateRange(rowIndex, 0, 1, lastColIndex);
                imgRange.ApplyStyle(style,
                  styleFlag);
                imgRange.RowHeight = int.Parse(height);//高度有效果
                imgRange.Merge();

这里传出高度和宽度,主要是为了导出的图片能够自己定义高度宽度,但是貌似没什么效果。或者我还没有找到它的规律,哪位大侠找到了也可以留言说一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值