在使用旧版本DataGird的中某一列全是数字并且长度大于15的字符,如身份证号码,在导出excel时数字列第15-18位全部为0。
原因:数字列最大长度已经超出限制,所以后面自动补0。
解决办法:在需导出数字列前加入英文字符状态的单引号(‘ ),
如:
<asp:TemplateField HeaderText="身份证号码" Visible="false">
<ItemTemplate>
<center>'<%# Eval("UserIdentityCard")%></center>
</ItemTemplate>
</asp:TemplateField>
,导出之后自动转换为文本格式。
在excel中数字前的单引号会自动转换成文本格式。
如果是已导出的execl,怎么将18位数字后3位自动变为0:
步骤1:单击“数据”菜单,“获取外部数据”组的“自文本”按钮,选择系统导出的*.csv格式的文件,再单击“导入”按钮
步骤2:在文本导入向导对话框中单击“下一步”。
步骤3:“分隔符号”勾选“逗号”,再单击“下一步”
步骤4:选择“号码”列,再选择“列数据格式”中的“文本”,再单击“完成”按钮
步骤5:选择要存放数据的单元格(可以是新工作表或现有工作表,本例以现有工作表为例),选择“现有工作表”,鼠标点一下框中,再选择A1单元格,Excel会自动在框中输入单元格地址(也可以手动输入),再单击“确定”按钮
通过上述操作后,导入的数据最后3位不会变为0