在項(xiàng)目中一般都需要將報(bào)表數(shù)據(jù)導(dǎo)出到EXCEL中,,但經(jīng)常出現(xiàn)導(dǎo)出長串?dāng)?shù)據(jù)(如身份證)到EXCEL中后顯示為科學(xué)計(jì)數(shù)法的格式,,或者報(bào)表中顯示為001的數(shù)據(jù)導(dǎo)出到Excel后成了1的格式,。
下面簡單介紹一下以上問題的解決方法:
protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
e.Row.Cells[1].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
}
1,、首先,了解一下excel從web頁面上導(dǎo)出的原理,。當(dāng)我們把這些數(shù)據(jù)發(fā)送到客戶端時(shí),,我們想讓客戶端程序(瀏覽器)以excel的格式讀取它,所以把mime類型設(shè)為:application/vnd.ms-excel,,當(dāng)excel讀取文件時(shí)會(huì)以每個(gè)cell的格式呈現(xiàn)數(shù)據(jù),,如果cell沒有規(guī)定的格式,則excel會(huì)以默認(rèn)的格式去呈現(xiàn)該cell的數(shù)據(jù),。這樣就給我們提供了自定義數(shù)據(jù)格式的空間,,當(dāng)然我們必須使用excel支持的格式。下面就列出常用的一些格式:
1) 文本:vnd.ms-excel.numberformat:@
2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3) 數(shù)字:vnd.ms-excel.numberformat:#,##0.00
4) 貨幣:vnd.ms-excel.numberformat:¥#,##0.00
5) 百分比:vnd.ms-excel.numberformat: #0.00%
方法2:
m_objSheet.get_Range("A2", m_objExcel.Cells[nCountRow+1,1]).NumberFormat = "@";
m_objSheet.get_Range("A2", m_objExcel.Cells[nCountRow+1,1]).NumberFormat = "00000";這種方法看似可以,,但是點(diǎn)擊單元格,,還是int型。
m_objSheet.get_Range("A2", m_objExcel.Cells[nCountRow+1,1]).NumberFormat = Excel.XlParameterDataType.xlParamTypeChar;