Экспорт данных в Excel, значение 3E2 становится 300, должен быть текст 3E2 - PullRequest
0 голосов
/ 31 января 2010

Я конвертирую данные в Excel, используя следующий код: public static void ExportDataTabletoExcel (String fileName, DataTable thetable) { if (thetable! = null) {

        //clear anything in io buffer
        HttpContext.Current.Response.Clear();
        //set to excel for to save file.
        HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
        HttpContext.Current.Response.AddHeader(
        "content-disposition", string.Format("attachment; filename={0}", fileName));
        HttpContext.Current.Response.ContentType = "application/ms-excel";

        HttpContext.Current.Response.Charset = "";
        HttpContext.Current.Response.BufferOutput = true;
        //write columns
        string tab = "";
        foreach (DataColumn dc in thetable.Columns)
        {
            HttpContext.Current.Response.Write(tab + dc.ColumnName);
            tab = "\t";

        }
        HttpContext.Current.Response.Write("\n");

        //write rows
        int i;
        foreach (DataRow dr in thetable.Rows)
        {
            tab = "";
            for (i = 0; i < thetable.Columns.Count; i++)
            {
                //if ( i != 1 ) 
                HttpContext.Current.Response.Write(tab + dr[i].ToString()); 
                //else
                //HttpContext.Current.Response.Write(tab + "'" + dr[i].ToString());
                tab = "\t";
            }
            HttpContext.Current.Response.Write("\n");
        }
        HttpContext.Current.Response.End();
    }

}

Однако для значения 3E2 или 0E2 или 4E3 оно преобразуется в число. Другое значение, например 1D2, правильно преобразуется в строку.

например 3E2 становятся 300 и т. Д.

1 Ответ

1 голос
/ 31 января 2010

Поместите двойные кавычки вокруг значения, чтобы в Excel было очевидно, что это строка, а не число в научной нотации.

...