如何将图像从RadGrid导出到csv文件

时间:2015-08-12 06:29:08

标签: asp.net telerik telerik-grid radgrid

我的radgridimage column。当我以excel格式导出时,图片显示在excel文件中,但是当我将其导出到csv文件仅显示image url而不是image是否有将图片嵌入csv文件?

2 个答案:

答案 0 :(得分:0)

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

  1. 存储图片网址。你已经说过你不这么想。
  2. Base64编码。有一个使用php的示例here。这个问题是base64编码需要比8位数据格式更多的存储容量。
  3. 希望这会有所帮助。祝你好运!

答案 1 :(得分:0)

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();
}