Answered by:
Remove an image from a templatefield when exporting to Excel?

Question
-
User2028823583 posted
Hi there. I'm working with a vb.net gridview that has a template field that consists of both a label and an image. When I export the data to excel, I do not want to export the image, just the data. Is there a way to "hide" or "delete" the image named "imgOrdered" when it's exported to Excel?
Here's my template field from my .aspx.
<asp:TemplateField HeaderText="Ordered" SortExpression="Ordered"> <ItemTemplate> <asp:Label ID="lblOrdered" runat="server" Text='<%# Bind("Ordered") %>' ForeColor="#EEEEEE"></asp:Label> <asp:Image ID="imgOrdered" runat="server" ImageUrl="~/Img/Checkmark.jpg" Visible='<%# iif(DataBinder.Eval(Container.DataItem,"Ordered").ToString = "No" , "False" , "True") %>' /> </ItemTemplate> </asp:TemplateField>
and here's my Export to Excel from my vb.net code behind.
Private Sub ExportToExcel(ByVal strFileName As String, ByVal dg As GridView) Response.Clear() Response.Buffer = True Response.ContentType = "application/vnd.ms-excel" Response.AddHeader("content-disposition", "attachment;filename=" & strFileName) Response.Charset = "" Me.EnableViewState = False Dim StringWriter As New System.IO.StringWriter() Dim HtmlTextWriter As New System.Web.UI.HtmlTextWriter(StringWriter) gvReport.RenderControl(HtmlTextWriter) Response.Write(StringWriter.ToString()) Response.End() End Sub
Tuesday, March 20, 2018 12:49 PM
Answers
-
User2028823583 posted
Hi there. I ended up adding this, to hide the image...
For i As Integer = 0 To gvReport.Rows.Count - 1
Dim row As GridViewRow = gvReport.Rows(i)
row.Cells(5).FindControl("Image1").Visible = False
Next- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Tuesday, March 20, 2018 7:10 PM
All replies
-
User2028823583 posted
Note.. I tried setting the column visibility equal to false, but that "hides" the label that is also in that cell. So this code didn't work for me. I appreciate any suggestions you might have....
gvReport.Columns(5).Visible = FalseTuesday, March 20, 2018 2:47 PM -
User632428103 posted
Hello funluckyKitty,
void ExportToExcel(DataTable datas, int nbColumnsDisplayed, string reportName) { DataTable dt = datas; string attachment = string.Format("attachment; filename={0}", reportName); Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/vnd.ms-excel"; string tab = ""; //export column name for (int i = 0; i < nbColumnsDisplayed; i++) { Response.Write(tab + dt.Columns[i].ColumnName); tab = "\t"; } Response.Write("\n"); // export rows foreach (DataRow dr in dt.Rows) { tab = ""; for (int i = 0; i < nbColumnsDisplayed; i++) { Response.Write(tab + dr[i].ToString()); tab = "\t"; } Response.Write("\n"); } Response.End(); }
try this method
Tuesday, March 20, 2018 3:55 PM -
User2028823583 posted
Hi there. I ended up adding this, to hide the image...
For i As Integer = 0 To gvReport.Rows.Count - 1
Dim row As GridViewRow = gvReport.Rows(i)
row.Cells(5).FindControl("Image1").Visible = False
Next- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Tuesday, March 20, 2018 7:10 PM