2012年9月24日 星期一

Gridview匯出Excel,Debug出現「運算式已經評估,沒有值」

用很簡單的方法匯出的Excel部分程式碼如下...
今天我遇到一個問題,就是怎樣值都跑不出來,明明確認dt裡面有資料的啊!


  Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=RetroCloud" +
            DateTime.Now.Ticks + ".xls");
            Response.Charset = "";
            Response.ContentType = "application/vnd.ms-excel";
            StringWriter sw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(sw);

            for (int i = 0; i < gvExcel.Rows.Count; i++)
            {

                gvExcel.Rows[i].Attributes.Add("class", "textmode");
            }
            gvExcel.RenderControl(hw);

            string style = @"<style> .textmode { mso-number-format:\@; } </style>";
            Response.Write(style);
            Response.Output.Write(sw.ToString());
            Response.Flush();
            Response.End();

可是到黃色那一行就一直顯示「運算式已經評估,沒有值」
好揪心...

很認真的查了MSDN,他說

如果伺服器控制項的 Visible 屬性是設定為 true,這個方法會判斷是否對該網頁啟用了追蹤。如果是,它便會儲存控制項相關的追蹤資訊,並且在網頁上呈現伺服器控制項內容。


.....所以請記得檢查前台Gridview有沒有設定Visibile=false......
一旦False就不會印到Excel裡面了喔!!

沒有留言:

張貼留言