我必須提供將中繼器中顯示的所有數據導出到excel文件的功能。我已經成功完成了,但文件大小超過了4MB。在C#中導出中繼器數據到Excel中.net
這是我使用的代碼。
public void ExportToExcel(Repeater name)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=RepeaterExport.csv");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
Repeater rp = name;
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
foreach (RepeaterItem item in name.Items)
{
item.Controls.Remove(item.FindControl("hd_Depot"));
item.Controls.Remove(item.FindControl("hd_ProdCode"));
item.Controls.Remove(item.FindControl("hd_Closing"));
item.Controls.Remove(item.FindControl("hd_groupName"));
}
rp.RenderControl(hw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
現在,當我使用XLS或XLSX它下載完美,但與大尺寸的,但如果我使用CSV它寫入整個HTML代碼以Excel文件。我的主要動機是將excel文件的大小縮小到小於1MB。請指教。
[This question](http://stackoverflow.com/questions/31403137/export-linq-query-result-to-excel-epplus)顯示瞭如何通過調用LoadFromDataTable方法從DataTable創建真正的Excel文件[EPPlus]資料庫。 EPPlus還有一個LoadFromCollection方法,可以加載任意對象。而不是使用中繼器,使用實際的數據表或數據對象列表,並將其傳遞給EPPlus –