簡體   English   中英

將SQL Server數據導出到Excel

[英]Export Sql Server Data To Excel

導出到Excel可以正常工作,但是如果數字有16位數字,則顯示如下:

4.26637E+11 

我的Emp_ID:

426636773888

我該怎么辦才能顯示426636773888像這樣: 426636773888

.CS代碼

string strQuery = "select * from Employee;
    SqlCommand cmd1 = new SqlCommand(strQuery);
    DataTable dt = GetData(cmd1);

    string attachment = "attachment; filename=Employee.xls";
    Response.ClearContent();
    Response.AddHeader("content-disposition", attachment);
    Response.ContentType = "application/vnd.ms-excel";
    string tab = "";
    foreach (DataColumn dc in dt.Columns)
    {
        Response.Write(tab + dc.ColumnName);
        tab = "\t";
    }
    Response.Write("\n");

    int i;
    foreach (DataRow dr in dt.Rows)
    {
        tab = "";
        for (i = 0; i < dt.Columns.Count; i++)
        {
            Response.Write(tab + dr[i].ToString());
            tab = "\t";
        }
        Response.Write("\n");
    }
    Response.End();

見圖片 在此處輸入圖片說明

嘗試使用ExcelPackage http://EPPlus.codeplex.com做到這一點,它將允許您指定列的數據類型,我以前在日期字段中遇到過同樣的問題。

嘗試為此字段以Excel公式格式="426636773888"導出長數字:

Response.Write(tab + "=\""+dr[i].ToString()+"\"");

一種簡單的方法:

更改
Response.Write(tab + dr[i].ToString());


Response.Write(tab + "'" + dr[i].ToString());

只需在數據前面添加單引號,然后excel就會將數據視為字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM