首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

把数据从页面导出到EXCEL时发现数据格式不对解决办法

2012-01-08 
把数据从页面导出到EXCEL时发现数据格式不对PrivateFunctionConvertDtToTDF(ByValdtAsDataTable)AsStringD

把数据从页面导出到EXCEL时发现数据格式不对
Private   Function   ConvertDtToTDF(ByVal   dt   As   DataTable)   As   String
                Dim   dr   As   DataRow,   ary()   As   Object,   i   As   Integer
                Dim   iCol   As   Integer

                '   输出列标题
                For   iCol   =   0   To   dt.Columns.Count   -   1
                        Response.Write(dt.Columns(iCol).ToString   &   vbTab)
                Next
                Response.Write(vbCrLf)

                '输出数据
                For   Each   dr   In   dt.Rows
                        ary   =   dr.ItemArray
                        For   i   =   0   To   UBound(ary)
                                Response.Write(ary(i).ToString   &   vbTab)
                        Next
                        Response.Write(vbCrLf)
                Next

        End   Function
       

        Private   Sub   toExcel_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   del.Click
                Response.Clear()
                Response.Buffer   =   True
                Response.Charset   =   "GB2312 "
                Response.AppendHeader( "Content-Disposition ",   "attachment;filename=FileName.xls ")
                Response.ContentEncoding   =   System.Text.Encoding.GetEncoding( "GB2312 ")
                '设置输出流为简体中文
                Response.ContentType   =   "application/ms-excel "
                '设置输出文件类型为excel文件。
                Me.EnableViewState   =   False
                Response.Write(ConvertDtToTDF(mytable))
                Response.End()
        End   Sub

在datagrid绑定时小数位都正常显示,但是导出到excel后发现小数位都丢了,不知道怎么设置导出的格式?

[解决办法]
显式定义小数点的位数并转为string。

string.Format( "{0:###.##} ", 123.45).
------解决方案--------------------


可以参考:
http://dotnet.aspx.cc/article/8a4cbf47-b888-4832-3389-ed3a3a3c8aab/read.aspx
[解决办法]
我习惯用EXCEL组件来导出数据
[解决办法]
protected void ExportExcel(DataGrid dtgList, string strFileName){DataTable dt = (DataTable)this.Session[ "GridToExcel "];if (dt==null) return;Response.Clear(); Response.Buffer = true; Response.Charset = "gb2312 ";Response.AppendHeader( "Content-Disposition ", "online; filename= " + this.GetFileName(strFileName) + ".xls ");Response.ContentEncoding = System.Text.Encoding.GetEncoding( "gb2312 ");Response.ContentType = "application/ms-excel ";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);dtgList.AllowPaging = false;//dtgList.DataSource = dt;//dtgList.DataBind();dtgList.RenderControl(oHtmlTextWriter); Response.Write(oStringWriter.ToString());Response.Buffer = false; Response.End();}
[解决办法]
学习中``
[解决办法]
你看看导出的html是不是这种格式. <td style= 'height:14.25pt;mso-number-format:0\.00 ' > 12.20 </td>

热点排行