2015-02-11 7 views
0

Я пытаюсь экспортировать свою панель в excel с помощью этого кода.Экспорт в excel в C# ошибка

Дизайн:

<asp:Panel ID="ExcelPanel" runat="server" Visible="false"> 
    <asp:GridView ID="ExcelGridView" runat="server" AutoGenerateColumns="False" 
    Width="100%" CellPadding="3" ForeColor="#333333" GridLines="Both" ShowHeader="True" Visible="true" > 
     <Columns> 
      <asp:TemplateField HeaderText="S. No." HeaderStyle-CssClass="gridViewHeader" ItemStyle-HorizontalAlign="left" SortExpression="wcName" ItemStyle-Width="12%"> 
       <ItemTemplate> 
        <asp:Label ID="performanceReportTBMWCNameLabel" runat="server" Text='<%# Eval("SNo") %>' CssClass="gridViewItems"></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 
</asp:Panel> 

C# Код:

ExcelGridView.DataSource = gridviewdt; 
ExcelGridView.DataBind(); 
ExcelPanel.Visible = true; 
Response.Clear(); 
Response.ClearHeaders(); 
Response.ClearContent(); 
Response.Buffer = true; 
Response.AddHeader("content-disposition", "attachment;filename=file.xls"); 
Response.ContentType = "application/vnd.ms-excel"; 

StringWriter stringWrite = new StringWriter(); 
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
ExcelPanel.RenderControl(htmlWrite); 

Response.Write(stringWrite.ToString()); 

Response.Flush(); 
Response.End(); 
ExcelPanel.Visible = false; 

Это область, которую я хочу, чтобы быть в моем файле Excel. Но я получаю всю страницу с главной страницей, а также в файле excel. Как я могу избежать цельной страницы и получать только панель в файле excel?

ответ

0

Вы Рендеринг HTML из ExcelPanel, следовательно, он показывает все HTML относительно к этой панели изменений панели GridView так он будет получать HTML из GridView

изменений

ExcelPanel.RenderControl(htmlWrite); 

в

ExcelGridView.RenderControl(htmlWrite); 
+0

Панель содержит только gridview. Все остальное находится за пределами панели. Итак, я использую панель, чтобы преуспеть. Если я удаляю gridview с панели, то я не беру всю страницу, но с gridview внутри панели, она занимает всю страницу. – Rohan