我想導出一個gridview表格爲excel格式。
,我發現最簡單,最快速前進的解決方案是從數學Berseth
http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.htmlGridView與從字節檢索的圖像
這個解決方案正常工作,被客戶所接受。但現在,幾個月後,一個新的功能被要求:「只需在Excel中放置一個圖像標識」
這讓我大吃一驚。我不能把System.Drawing.Image放在System.Web.UI.WebControls.Image中,因爲它們完全不同,但是我不能只放一個Path,因爲生成的Excel會通過電子郵件發送所以不能考慮目錄結構。
那麼,我可以把從GridView中的字節檢索到的圖像導出到數學模型中,還是以其他方式存在?
編輯..
我走了幾步,但我仍然遠離我的目標。 使用字符串的Base64在HTML文件中,我可以嵌入圖像
喜歡的東西:
private string MakeImageSrcData(string filename) {
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
byte[] filebytes = new byte[fs.Length];
fs.Read(filebytes, 0, Convert.ToInt32(fs.Length));
return "data:image/png;base64," + Convert.ToBase64String(filebytes, Base64FormattingOptions.None);
}
...
string base64 = MakeImageSrcData("D:\\Proj\\top_title.png");
TableRow tr = new TableRow();
TableCell tc = new TableCell();
Image logoEmpresa = new Image();
logoEmpresa.ImageUrl = base64;
tc.Controls.Add(logoEmpresa);
tr.Cells.Add(tc);
table.Rows.Add(tr);
這正常工作與IE和FF,但沒有絲毫的Excel:/
我試過電子表格xml,但是正如MSDN描述的那樣here不支持圖像類型。
其他一些想法?
不錯,我在這想。實際上,我可以使用System.Web.UI.WebControls.Image並將控件放入TableRow中。但是因爲我在intranet env工作,所以我無法用可訪問的網站來計數。 – Custodio 2011-05-02 20:27:33
@Luis:'Image'控件最終將呈現爲HTML''標記,並且將受到與任何圖像相同的限制。我不確定是否有方法將圖像編碼爲與頁面嵌入*。我也爲Intranet環境編寫應用程序,並發現將圖像放置在與生成網格視圖的頁面相同的Web應用程序中通常足以讓我的Intranet客戶滿意。如果不是,我建議嘗試公司的公共網站或一些異地託管。 – kbrimington 2011-05-02 20:35:26
我發現了一種將圖像嵌入到html中使用字符串base64的方法。直到使用Internet Explorer和Firefox工作正常,但與Excel無關。我嘗試過電子表格XML,但不支持圖像內容。我一直沒有在Excel中嵌入圖像的解決方案。 – Custodio 2011-05-04 19:58:48