欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

解讀.net解決數(shù)據(jù)導(dǎo)出excel時(shí)的格式問題_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:怎樣實(shí)現(xiàn).net程序的進(jìn)程注入
進(jìn)程注入比較常見,比如用IDE調(diào)試 程序 以及一些Spy程序,如果僅僅為了與調(diào)試器通訊,可以使用.net提供的Debugger接口(在EnvDTE.dll的EnvDTE命名空間下).但無論出于什么目的,進(jìn)程注入都是比較好玩的事情,所以不妨一試 . 進(jìn)程注入的 方法 貌似很多(比如像特洛伊

在項(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的格式。

下面簡單介紹一下以上問題的解決方法:

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%

這些格式你也可以自定義,比如年月你可以定義為:yy-mm等等。那么知道了這些格式,怎么去把這些格式添加到cell中呢?下面以datagrid控件為例,介紹其格式化代碼。

2、實(shí)例

前臺(tái)代碼

以下為引用的內(nèi)容:
〈html xmlns="http://www.w3.org/1999/xhtml" >
〈head runat="server">
    〈title>導(dǎo)出數(shù)據(jù)到Excel〈/title>
〈/head>
〈body>
    〈form id="form1" runat="server">
    〈div>
   
        〈asp:DataGrid ID="DataGrid1" runat="server"
            onitemdatabound="DataGrid1_ItemDataBound" >
        〈/asp:DataGrid>
        〈asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="導(dǎo)出數(shù)據(jù)到Excel" />
   
    〈/div>
    〈/form>
〈/body>
〈/html>

后臺(tái)代碼

以下為引用的內(nèi)容:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

 

namespace FLX.ComplexQuery
{
    public partial class OutPutExcel : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            DataGrid1.DataSource = CreateDataSource();
            DataGrid1.DataBind();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//設(shè)置輸出流為簡體中文
            Response.ContentType = "application/ms-excel";//設(shè)置輸出文件類型為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);
            this.DataGrid1.RenderControl(oHtmlTextWriter);
            Response.Write(oStringWriter.ToString());
            Response.End();
        }

        ICollection CreateDataSource()
        {

            DataTable dt = new DataTable();
            DataRow dr;
            dt.Columns.Add(new DataColumn("身份證號(hào)碼", typeof(string)));
            dt.Columns.Add(new DataColumn("圖書單價(jià)", typeof(decimal)));
            dt.Columns.Add(new DataColumn("購買數(shù)量", typeof(Int32)));
            dt.Columns.Add(new DataColumn("總價(jià)格", typeof(decimal)));
            for (int i = 0; i 〈 30; i++)
            {
                dr = dt.NewRow();

                dr[0] = "123456789123456789";
                dr[1] = 100 * i / 3.0;
                dr[2] = i + 5;
                dr[3] = (decimal)dr[1] * (Int32)dr[2];
                dt.Rows.Add(dr);
            }
            DataView dv = new DataView(dt);
            return dv;
        }

        protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                //將整個(gè)datagrid都格式化為文本格式
                int datagridcolumns; //datagrid顯示列的數(shù)量,
                //獲取顯示列的數(shù)量可以從數(shù)據(jù)源那里進(jìn)行獲取
                //比如綁定DataGrid的數(shù)據(jù)源是DataSet                  
                //datagrid顯示列的數(shù)量 = ds.tables[0].Columns.Count; 
                for (int i = 0; i 〈 datagridcolumns; i++)
                {
                    e.Item.Cells[i].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
                }

                //對需要格式化的列進(jìn)行格式化
                //e.Item.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
                //e.Item.Cells[2].Attributes.Add("style", "vnd.ms-excel.numberformat::#,##0.00");
               // e.Item.Cells[3].Attributes.Add("style", "vnd.ms-excel.numberformat:¥#,###.00");         
            }
        }
    }
}

分享:如何在.NET環(huán)境下為網(wǎng)站增加IP過濾功能
華能集團(tuán)下某發(fā)電廠的企業(yè)網(wǎng)站(基于Asp.Net2.0實(shí)現(xiàn),不允許修改源程序)要求實(shí)現(xiàn)廠內(nèi)用戶可直接訪問整個(gè)站點(diǎn)的所有頁面,廠外用戶只能訪問指定的頁面的功能,本文將按照需求分析、方案設(shè)計(jì)、編碼實(shí)現(xiàn)、部署應(yīng)用的順序逐步闡述整個(gè)解決方案的形成過程。 1.

來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2009-07-07
相關(guān).Net教程