数据导入Excel后,格式的变化??急

greystar 2003-06-06 11:40:44
我将页面里将数据导入Excel后,再下载下来。
可是我发现有的数据列的格式会发生变化,如身份证号,是十五位的。
打开EXCEL后看到的是科学计数法。如手工将这列的数据转换成文本。那么又会在文本后面加上三位数。

320411771224081
变成320411771224081111

如果将科学记数法变成文本列,只要在写入CELL时。给数据前面加一个单引号。就行了。但我试了,在文本未无论加什么,都会自动加上111
现在我就是这个自动帮我加的数字我没法处理。
请问哪位遇到过??
...全文
161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kld3000 2003-06-11
  • 打赏
  • 举报
回复
学习
看来以后我什么都要懂一点才行了
错误不一定就是在asp.net上了
再回味
再学习
greystar 2003-06-09
  • 打赏
  • 举报
回复
问题已解决了,是出在EXCEL上,其实可以在数字前加上一个单引号就能实现成文本。
是EXCEL没学好。
dukaixy 2003-06-08
  • 打赏
  • 举报
回复
可以先将单元格的格式设置成文本形式:

for(int i=0;i<=rows;i++)
{
//oExcel.get_Range(oExcel.Cells[i,6],oExcel.Cells[i+1,6]).ClearFormats();
for(int j=0;j<=clumns;j++)
{
if(i==0)
{
oExcel.Cells[1,j+1]=pDateTable.Columns[j].ColumnName.ToString();
}
oExcel.cells[i+2,j+1].select();
oExcel.cells[i+2,j+1].Selection.NumberFormatLocal = "@"//设置为文本格式
oExcel.Cells[i+2,j+1]=pDateTable.Rows[i][j].ToString();
}
}
greystar 2003-06-06
  • 打赏
  • 举报
回复
各位兄弟帮帮忙啊。!!!
greystar 2003-06-06
  • 打赏
  • 举报
回复
换成*.csv也没有用啊。还是一样。



if(this.Request.QueryString["ClassGuid"]!=null)
{
JBInfoBase.SingMems pSM=new JBInfoBase.SingMems();
string pFileName=this.Request.QueryString["ClassName"].ToString();
System.Data.DataTable pDateTable=pSM.SearchExcelDate(this.Request.QueryString["ClassGuid"].ToString().Trim());
HttpResponse rsp;
rsp=Page.Response;

rsp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//乱码问题
rsp.AppendHeader("Content-Disposition", "attachment;filename="+pFileName ); //'必要,做成下载文件

Excel.Application oExcel=null;


Excel.Workbook oBook;
Object oMissing=System.Reflection.Missing.Value ;
oExcel=new Excel.Application();
oBook=oExcel.Workbooks.Add(oMissing);
int rows;
int clumns;
// System.Globalization.CultureInfo pa=new System.Globalization.CultureInfo("zh-CHS");
//
// System.Globalization.NumberFormatInfo pN=new System.Globalization.NumberFormatInfo();

rows=pDateTable.Rows.Count-1;
clumns=pDateTable.Columns.Count-1;
for(int i=0;i<=rows;i++)
{
// oExcel.get_Range(oExcel.Cells[i,6],oExcel.Cells[i+1,6]).ClearFormats();
for(int j=0;j<=clumns;j++)
{
if(i==0)
{

oExcel.Cells[1,j+1]=pDateTable.Columns[j].ColumnName.ToString();
}

oExcel.Cells[i+2,j+1]=pDateTable.Rows[i][j].ToString();
}
}

oBook.Saved=true;
oExcel.UserControl=false;


string file=Server.MapPath(".")+"\\" + pFileName;//Server.MapPath(".")服务器保存地址
oExcel.ActiveWorkbook.SaveCopyAs(file);
//oExcel.Quit();

rsp.WriteFile(file);
oExcel.Quit();
oExcel=null;

// rsp.Flush();
// rsp.End();
//JBInfoBase.MakeExcel pME=new JBInfoBase.MakeExcel();
//pME.GenerateFile(this.Page,this.Request.QueryString["ClassName"].ToString(),pDT);
}
}


身份证号自动从15位变成了18位。后三位是自动加上去的。全是111
greystar 2003-06-06
  • 打赏
  • 举报
回复
自己顶

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧