简体   繁体   English

将SQL Server数据导出到Excel

[英]Export Sql Server Data To Excel

Export to Excel is working fine, but if the number has 16 digits it's seen like this: 导出到Excel可以正常工作,但是如果数字有16位数字,则显示如下:

4.26637E+11 

My Emp_ID: 我的Emp_ID:

426636773888

What can I do to display Emp_ID like this: 426636773888 我该怎么办才能显示426636773888像这样: 426636773888

.CS Code .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();

See Image 见图片 在此处输入图片说明

尝试使用ExcelPackage http://EPPlus.codeplex.com做到这一点,它将允许您指定列的数据类型,我以前在日期字段中遇到过同样的问题。

尝试为此字段以Excel公式格式="426636773888"导出长数字:

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

A simple way: 一种简单的方法:

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

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

Just adding a single quote in front of the data, then excel will consider the data as a string. 只需在数据前面添加单引号,然后excel就会将数据视为字符串。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM