导出到Excel,字符串350471085701265成了3.50471E 14的解决方法- -
方法一:(感谢zhuzhanmin的帮助)
System.Data.DataTable DT = ds.Tables["EXC"];
OWC.SpreadsheetClass xlsheet = new OWC.SpreadsheetClass();
int row=1;
string ssss="";
for(int i=0;i<ds.Tables["EXC"].Columns.Count;i++)
{
xlsheet.ActiveSheet.Cells[1,i+1] = ds.Tables["EXC"].Columns[i].ColumnName.ToString ();
}
foreach(System.Data.DataRow DR in DT.Rows)
{
for(int i=0;i<ds.Tables["EXC"].Columns.Count;i++)
{
ssss=DR[i].ToString();
if(i<7)
{xlsheet.ActiveSheet.Cells[row+1,i+1] = "'"+ssss;}
else
{xlsheet.ActiveSheet.Cells[row+1,i+1] =ssss;}
}
row++;
}
DT.Clear();
DT.Dispose();
string filname="grsds.xls";
xlsheet.ActiveSheet.Export(Server.MapPath(".")+"\\"+filname,OWC.SheetExportActionEnum.ssExportActionNone);
Response.Redirect filname);
OWC.SpreadsheetClass xlsheet = new OWC.SpreadsheetClass();
int row=1;
string ssss="";
for(int i=0;i<ds.Tables["EXC"].Columns.Count;i++)
{
xlsheet.ActiveSheet.Cells[1,i+1] = ds.Tables["EXC"].Columns[i].ColumnName.ToString ();
}
foreach(System.Data.DataRow DR in DT.Rows)
{
for(int i=0;i<ds.Tables["EXC"].Columns.Count;i++)
{
ssss=DR[i].ToString();
if(i<7)
{xlsheet.ActiveSheet.Cells[row+1,i+1] = "'"+ssss;}
else
{xlsheet.ActiveSheet.Cells[row+1,i+1] =ssss;}
}
row++;
}
DT.Clear();
DT.Dispose();
string filname="grsds.xls";
xlsheet.ActiveSheet.Export(Server.MapPath(".")+"\\"+filname,OWC.SheetExportActionEnum.ssExportActionNone);
Response.Redirect filname);
方法二:将DataGrid数据导出到Excel前先将此段设置为文本格式.
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Cells[2].Attributes.Add("style","vnd.ms-excel.numberformat:@");
}
}
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Cells[2].Attributes.Add("style","vnd.ms-excel.numberformat:@");
}
}