[英]Export a GridView to Excel
我试图将GridView
导出到xls文件中,将GridView
插入到Modal
并且我想因为它不能导出。
这是来自Button
的操作的BackEnd
:
protected void Btn_download_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.AppendHeader("content-disposition", "attachment; flename=MainReport.xls");
Response.ContentType = "application/excel";
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
Grv_main.RenderControl(htmlTextWriter);
Response.Write(stringWriter.ToString());
Response.End();
}
这是HTML
:
<form id="form1" runat="server">
<div class="container">
<div class="modal fade" id="History-Maint" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header" style="padding: 35px 50px;">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3><span class="glyphicon glyphicon-list-alt"></span>  Maintenance Report</h3>
</div>
<div class="modal-body">
<asp:GridView ID="Grv_main"
CssClass="table table-striped table-bordered table-hover"
runat="server"
AutoGenerateColumns="False"
Width="940px"
HorizontalAlign="Center"
DataKeyNames="id"
AllowPaging="True" OnRowEditing="GridView1_RowEditing">
<Columns>
<asp:TemplateField HeaderText="id" Visible="false">
<ItemTemplate>
<asp:Label ID="Lbl_id" runat="server" Text='<%# Bind("id") %>'></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="status">
<ItemTemplate>
<asp:Label ID="Lbl_stats" runat="server" Text='<%# Bind("STATUS") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="tool">
<ItemTemplate>
<asp:Label ID="Lbl_tool" runat="server" Text='<%# Bind("TOOL") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Area Change">
<ItemTemplate>
<asp:Label ID="Lbl_areach" runat="server" Text='<%# Bind("AREA") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="responsable">
<ItemTemplate>
<asp:Label ID="Lbl_resp" runat="server" Text='<%# Bind("RESPONSABLE") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="nota">
<ItemTemplate>
<asp:Label ID="Lbl_note" runat="server" Text='<%# Bind("NOTA") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="fecha de modificacion">
<ItemTemplate>
<asp:Label ID="Lbl_mod" runat="server" Text='<%# Bind("MODIFY") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="modal-footer">
<asp:Button ID="Btn_download" runat="server" CssClass="btn btn-success" Text='Guardar' OnClick="Btn_download_Click" />
</div>
</div>
</div>
</div>
</div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">
</asp:ContentPlaceHolder>
</form>
这一切,是在MasterPage
和成form
与所述runat="server"
对我来说最好的就是使用ClosedXML
https://github.com/closedxml/closedxml
这非常容易,您可以添加内置的排序和过滤功能。
这是文档中的示例:
var workbook = new XLWorkbook();
var worksheet = workbook.Worksheets.Add("Sample Sheet");
worksheet.Cell("A1").Value = "Hello World!";
workbook.SaveAs("HelloWorld.xlsx");
private void ExportGridToExcel() {
Response.Clear();
//You had a typo on the line below in your code for (filename)
Response.AddHeader("content-disposition", "attachment;filename=MainReport.xls");
Response.ContentType = "File/Data.xls";
StringWriter StringWriter = new System.IO.StringWriter();
HtmlTextWriter HtmlTextWriter = new HtmlTextWriter(StringWriter);
GridEmpData.RenderControl(HtmlTextWriter);
Response.Write(StringWriter.ToString());
Response.End();
}
请参考此网站http://www.c-sharpcorner.com/UploadFile/b926a6/gridview-data-export-into-excel-file-format/
也许看看? 那里有数据库,尽管上面有关于如何将gridview转换为Excel文件的答案,并且代码在上面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.