在ASP.NET中,我通過將DataSet綁定到GridView然後將ContentType設置爲Excel將一些數據導出到Excel。爲什麼我的Excel導出在頂部有一個空行?
我的ASPX頁面非常簡單,看起來像這樣:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ExamExportReport.aspx.cs" Inherits="Cabi.CamCentral.Web.Pages.Utility.ExamExportReport" %>
<html>
<body>
<form id="form1" runat="server">
<asp:GridView
ID="gridExam"
AutoGenerateColumns="true"
runat="server">
</asp:GridView>
</form>
</body>
</html>
在後面的代碼的Page_Load方法中,我這樣做:
protected void Page_Load(object sender, EventArgs e)
{
BindGrid();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment; filename=ExamExport.xls");
}
一般情況下,一切工作正常,並Excel文件彈出正確的數據。問題在於Excel文件總是以列標題正上方的第一行爲空。我無法弄清楚是什麼導致了這一點。也許這是關於窗體標籤的東西?也許我需要添加一些樣式或東西去除填充或邊距?我嘗試了一堆東西,但我無法擺脫那個第一空白行。有沒有其他人遇到過這個問題?任何解決方案
這應該是裏面! Page.IsPostback事件。此外,您在Page_Load方法中執行此操作的任何原因。 – azamsharp 2008-10-02 23:43:13
這個頁面永遠不會有回傳,因爲它是通過Server.Transfer導航的,並且沒有用於發佈任何內容的UI。在這種情況下,Page_Load是合乎邏輯的地方。 – jeremcc 2008-10-02 23:47:58