DataTable導出excel 設置單元格格式


 1 public static void DataTableExcel(DataTable dtData, String FileName)
 2 {
 3     System.Web.UI.WebControls.GridView dgExport = null;
 4     System.Web.HttpContext curContext = System.Web.HttpContext.Current;
 5     System.IO.StringWriter strWriter = null;
 6     System.Web.UI.HtmlTextWriter htmlWriter = null;
 7 
 8     if (dtData != null)
 9     {
10         //設置編碼和附件格式 作用是中文文件名亂碼
11         //System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8)
12         curContext.Response.ContentType = "application/ms-excel"; // "application nd.ms-excel";
13         curContext.Response.ContentEncoding = System.Text.Encoding.Default;
14         curContext.Response.Charset = "gb2312";
15         curContext.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
16         //導出Excel文件 
17         strWriter = new System.IO.StringWriter();
18         htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
19 
20         //為了解決dgData中可能進行了分頁的情況,需要重新定義一個無分頁的GridView 
21         dgExport = new System.Web.UI.WebControls.GridView();
22         dgExport.DataSource = dtData;
23         dgExport.AllowPaging = false;
24         dgExport.DataBind();
25 
26         //設置導出格式為文本格式防止丟失數據
27         dgExport.Attributes.Add("style", "vnd.ms-excel.numberformat:@");
28 
29         //設置excel單元格格式防止轉換數據丟失數字
30         //for (int i = 0; i < dtData.Rows.Count; i++)
31         //{
32         //    for (int j = 0; j < dtData.Columns.Count; j++)
33         //    {
34         //        dgExport.Rows[i].Cells[j].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
35         //    }
36         //}
37 
38         //下載到客戶端 
39         dgExport.RenderControl(htmlWriter);
40         curContext.Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />" + strWriter.ToString());
41         curContext.Response.End();
42     }

另:

取行一般用rowfilter

1 DataTable datSource;//數據源表
2 //過濾表
3 DataView davTemp = new DataView(datSource, "過濾條件", "排序字段", DataViewRowState.各種 狀態);
4 //把過濾后的表賦給新表
5 DataTable datNew = davTemp.ToTable();

取表的某列或多列

1 DataTable datSource;//數據源表
2 DataTable datNew= datSource.DefaultView.ToTable(false, new string[] { "列名", "列名" .....});

復制某行的值(前提是表結構或列數相同)

1 DataTable datSource;
2 DataTable datNew;
3 datSource.Rows[i].ItemArray= datNew. Rows[i].ItemArray;

調整列的位置SetOrdinal()

1 DataTable dat = new DataTable();
2 //添加三列
3 dat.Columns.Add("col1");
4 dat.Columns.Add("col2");
5 dat.Columns.Add("col3");
6 //添加一行數據
7 dat.Rows.Add(1,2,3);
8 //把第三列放到第一的位置
9 dat.Columns["col3"].SetOrdinal(0);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM