Excel导出问题(导出时不去掉前面的0)

时间:2022-05-11 09:20:20
现在从数据库中导出一个表到Excel中,其中一列是卡号,卡号前几位都为0,例如00012541,现在让它导出到Excel中,前面的0会消失,变为12541,请问,有没有方法不去掉0的,望高手指教!我导出Excel的程序为下:
Response.Clear(); 
Response.Buffer= true;  
            //替换编码方式
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls"); 
            //替换编码方式
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 
this.EnableViewState = false;    
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad); 
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

10 个解决方案

#1


格式问题!

string style = "<style>.text{mso-number-format:\@;}</script>";

Response.Writeln(style);

#2


在简易的Jsp导出html版本的execl中所有的文件导出默认都是文本文件,这给业务人员带来了一些不必要的操作,建议使用下面的方法,可以调整导出的格式类型.

mso-number-format:"0" NO Decimals
mso-number-format:"0\.000" 3 Decimals
mso-number-format:"\#\,\#\#0\.000" Comma with 3 dec
mso-number-format:"mm\/dd\/yy" Date7
mso-number-format:"mmmm\ d\,\ yyyy" Date9
mso-number-format:"m\/d\/yy\ h\:mm\ AM\/PM" D -T AMPM
mso-number-format:"Short Date" 01/03/1998
mso-number-format:"Medium Date" 01-mar-98
mso-number-format:"d\-mmm\-yyyy" 01-mar-1998
mso-number-format:"Short Time" 5:16
mso-number-format:"Medium Time" 5:16 am
mso-number-format:"Long Time" 5:16:21:00
mso-number-format:"Percent" Percent - two decimals
mso-number-format:"0%" Percent - no decimals
mso-number-format:"0\.E+00" Scientific Notation
mso-number-format:"\@" Text
mso-number-format:"\#\ ???\/???" Fractions - up to 3 digits (312/943)
mso-number-format:"\0022£\0022\#\,\#\#0\.00" £12.76
mso-number-format:"\#\,\#\#0\.00_ \;\[Red\]\-\#\,\#\#0\.00\ "
2 decimals, negative numbers in red and signed
(1.56   -1.56)

 

 

用法举例:

当我们用<%@page contentType="application/vnd.ms-excel; charset=UTF-8"%>的方法导出jsp文件为excel时,如果导出的数据中有数字以0开头,则该0会被省略,为了保留这个处于首位的0,可以在表格的style中加入:

style='mso-number-format:"\@";'

这样的话,导出的该表格中首位为0的数字就会将该0保留啦!

#3


您说这个string style = "<style>.text{mso-number-format:\@;}</script>";
Response.Writeln(style);加到哪个地方?我是新手~还望指教,而且Response里面也没Writeln这个方法啊

#4


在数字前面加'符号

#5


在数字前面加'符号 是个方法,也实现了~但是它有些不方便!!有没有其它的方法了

#6


Excel 自己本身就是用前面加'符号 来定义字符的吧。
你能作的只是看怎么加方便罢了,毕竟你最终要存成EXCEL

#7


加'方法就不错
加上HDR=Yes;IMEX=1; 
设置excel单元格格式 
NumberFormatLocal = "@" 

#8


帮忙 顶一下。我也遇到了这个问题 

#9


该回复于2010-12-02 13:43:30被版主删除

#10


引用 3 楼 xinsuiyuan123 的回复:
您说这个string style = "<style>.text{mso-number-format:\@;}</script>";
Response.Writeln(style);加到哪个地方?我是新手~还望指教,而且Response里面也没Writeln这个方法啊

我也想知道是加在哪里

#1


格式问题!

string style = "<style>.text{mso-number-format:\@;}</script>";

Response.Writeln(style);

#2


在简易的Jsp导出html版本的execl中所有的文件导出默认都是文本文件,这给业务人员带来了一些不必要的操作,建议使用下面的方法,可以调整导出的格式类型.

mso-number-format:"0" NO Decimals
mso-number-format:"0\.000" 3 Decimals
mso-number-format:"\#\,\#\#0\.000" Comma with 3 dec
mso-number-format:"mm\/dd\/yy" Date7
mso-number-format:"mmmm\ d\,\ yyyy" Date9
mso-number-format:"m\/d\/yy\ h\:mm\ AM\/PM" D -T AMPM
mso-number-format:"Short Date" 01/03/1998
mso-number-format:"Medium Date" 01-mar-98
mso-number-format:"d\-mmm\-yyyy" 01-mar-1998
mso-number-format:"Short Time" 5:16
mso-number-format:"Medium Time" 5:16 am
mso-number-format:"Long Time" 5:16:21:00
mso-number-format:"Percent" Percent - two decimals
mso-number-format:"0%" Percent - no decimals
mso-number-format:"0\.E+00" Scientific Notation
mso-number-format:"\@" Text
mso-number-format:"\#\ ???\/???" Fractions - up to 3 digits (312/943)
mso-number-format:"\0022£\0022\#\,\#\#0\.00" £12.76
mso-number-format:"\#\,\#\#0\.00_ \;\[Red\]\-\#\,\#\#0\.00\ "
2 decimals, negative numbers in red and signed
(1.56   -1.56)

 

 

用法举例:

当我们用<%@page contentType="application/vnd.ms-excel; charset=UTF-8"%>的方法导出jsp文件为excel时,如果导出的数据中有数字以0开头,则该0会被省略,为了保留这个处于首位的0,可以在表格的style中加入:

style='mso-number-format:"\@";'

这样的话,导出的该表格中首位为0的数字就会将该0保留啦!

#3


您说这个string style = "<style>.text{mso-number-format:\@;}</script>";
Response.Writeln(style);加到哪个地方?我是新手~还望指教,而且Response里面也没Writeln这个方法啊

#4


在数字前面加'符号

#5


在数字前面加'符号 是个方法,也实现了~但是它有些不方便!!有没有其它的方法了

#6


Excel 自己本身就是用前面加'符号 来定义字符的吧。
你能作的只是看怎么加方便罢了,毕竟你最终要存成EXCEL

#7


加'方法就不错
加上HDR=Yes;IMEX=1; 
设置excel单元格格式 
NumberFormatLocal = "@" 

#8


帮忙 顶一下。我也遇到了这个问题 

#9


该回复于2010-12-02 13:43:30被版主删除

#10


引用 3 楼 xinsuiyuan123 的回复:
您说这个string style = "<style>.text{mso-number-format:\@;}</script>";
Response.Writeln(style);加到哪个地方?我是新手~还望指教,而且Response里面也没Writeln这个方法啊

我也想知道是加在哪里