Я конвертирую данные в 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 и т. Д.