【问题标题】:How to export image from RadGrid to csv file如何将图像从 RadGrid 导出到 csv 文件
【发布时间】:2025-12-18 08:35:01
【问题描述】:

我有一个radgrid,其中有一个image column
当我以excel 格式导出时,图像显示在excel 文件中,但是当我将其导出到csv 文件时,它只是显示image url 而不是image有没有办法将图像嵌入csv 文件中?

【问题讨论】:

    标签: asp.net telerik telerik-grid radgrid


    【解决方案1】:

    很抱歉打扰您,但没有直接的方式以 csv 格式存储图像文件。但是......有解决方法。我怀疑你会发现它们... 吸引人

    1. 存储图像 URL。你已经说过你不想这样。
    2. Base64 编码。有一个使用 php 的示例 here。这个问题是 base64 编码比 8 位数据格式需要更多的存储容量。

    希望这会有所帮助。祝你好运!

    【讨论】:

      【解决方案2】:

      CSV 是一个以逗号分隔的纯文本文件,它不支持任何非文本内容。但是,有一种类似于 apollo 建议的解决方法,这就是您想要的编码方式。

      //Display image and set the alternate text
      protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
            {
                if (e.Item is GridDataItem)
                {
                    GridDataItem item = (GridDataItem)e.Item;
                    System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image)item["GridImageColumn"].Controls[0];
                    //set image url                  
                    img.ImageUrl = "~/images/test.png"; 
      
                    /convert image to byte array and get the base64 representation
                    byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/images/test.png"));
                    string base64ImageRepresentation = Convert.ToBase64String(imageArray);    
      
                    img.AlternateText = base64ImageRepresentation; 
                    }
          }
      
      //Finally export the data
      protected void Button1_Click(object sender, EventArgs e)
      {
          foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
          {
              System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image)item["GridImageColumn"].Controls[0];
              item["GridImageColumn"].Text = img.AlternateText;
          }
          RadGrid1.MasterTableView.ExportToCSV();
      }
      

      【讨论】: