IT技術(shù)

將表中數(shù)據(jù)導(dǎo)出到Excel表格中
作者:
來(lái)源: 本站
發(fā)布日期: 2018/4/16 11:42:51
點(diǎn)擊量: 2386次
【 字體:
背景顏色:

將表中數(shù)據(jù)導(dǎo)出到Excel表格中

 

有時(shí)候,我們有將數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出到Excel表格中的需求,這里我就分享點(diǎn)心得,本人才學(xué)疏淺,若有不足之處望以指正。

不同以頁(yè)面JS的導(dǎo)出,頁(yè)面JS導(dǎo)出需要全部讀出,且不能分頁(yè),沒(méi)有標(biāo)注這一功能,所以用后臺(tái)C#代碼導(dǎo)出。

1. 命名空間

using Aspose.Cells;

using System.IO;

using System.Reflection;

using System.Text.RegularExpressions;

using Models;

using System.Drawing;

using System.Data;

 

//點(diǎn)擊按鈕事件

 protected void btnExport_Click(object sender, EventArgs e){

                 Workbook workbook = new Workbook();

        CommentCollection comments = workbook.Worksheets[0].Comments;//用于寫(xiě)標(biāo)

        Entities db = new Entities();

        Var bll = db.表.toList();

 for (int i = 0; i < bll.Count(); i++)//行的行數(shù)

                 {

                    var obj = bll[i];

                    var type = obj.GetType();

                    var idx = 0;//列           

                    foreach (var model in type.GetProperties())

            {

                var str = string.Format("{0}", model.GetValue(obj, null));

                       if (Regex.IsMatch(model.Name, "\\\\w+PZ"))//用于寫(xiě)標(biāo)注

                       {

                          if (!string.IsNullOrEmpty(str) && idx > 0)

                          {

                            Comment comment = comments[comments.Add(i + 1, idx - 1)];

                            comment.Note = str;//和上一個(gè)數(shù)據(jù)相同的位置,將備注寫(xiě)進(jìn)去

                           }

                }

                 else

                    {

                        workbook.Worksheets[0].Cells[i + 1, idx].PutValue(str);//將值寫(xiě)進(jìn)表格中

                    }

                    idx++;//列遞增

}

}

        //為標(biāo)題設(shè)置樣式    

        Aspose.Cells.Style styleTitle = workbook.Styles[workbook.Styles.Add()];//新增樣式

        styleTitle.HorizontalAlignment = TextAlignmentType.Center;//文字居中

        styleTitle.Font.Name = "宋體";//文字字體

        styleTitle.Font.Size = 9;//文字大小

        styleTitle.Font.IsBold = true;//粗體

        for (int i = 0; i < 30; i++)

        {

            workbook.Worksheets[0].Cells[0, i].SetStyle(styleTitle);

        }

}

 

        //表頭

        workbook.Worksheets[0].Cells[0, 0].PutValue("");

        workbook.Worksheets[0].Cells[0, 1].PutValue("");

        workbook.Worksheets[0].Cells[0, 2].PutValue("");

        workbook.Worksheets[0].Cells[0, 3].PutValue("");

        workbook.Worksheets[0].Cells[0, 4].PutValue("");

        workbook.Worksheets[0].Cells[0, 5].PutValue("");

        workbook.Worksheets[0].Cells[0, 6].PutValue("");

        workbook.Worksheets[0].Cells[0, 7].PutValue("");

        

 

//表名

        string tableName = "";

        if (_Id == 0)

        {

            tableName = "工資信息匯總表";

        }

        else

        {

            var Bpl = db.S_Department.SingleOrDefault(p => p.SDID == _Id);

            if (Bpl != null)

            {

                tableName = Bpl.SDCName;

            }

        }

 

        System.IO.MemoryStream ms = workbook.SaveToStream();

        byte[] bt = ms.ToArray();

        //客戶(hù)端保存的文件名  

        string fileName = tableName + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";

        //以字符流的形式下載文件    

        Response.ContentType = "application/vnd.ms-excel";

        //以字符流的形式下載文件  

        HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";

        //通知瀏覽器下載文件而不是打開(kāi)

        HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));

        HttpContext.Current.Response.BinaryWrite(bt);

        HttpContext.Current.Response.Flush();

HttpContext.Current.Response.End();

}

 

這樣,我們導(dǎo)出的就是將數(shù)據(jù)庫(kù)中表中數(shù)據(jù)導(dǎo)出到Excel表格中,并且?guī)в袠?biāo)注。以前也嘗試過(guò)用Excel的方式導(dǎo)出,倒是要購(gòu)買(mǎi),不然會(huì)限制到只能導(dǎo)出200行,不能滿(mǎn)足需求。

望能給你帶來(lái)一些小小的幫助。

掃一掃在手機(jī)打開(kāi)當(dāng)前頁(yè)

Contact

聯(lián)系我們

告訴我們您想要的吧!我們?yōu)楫?dāng)?shù)乜蛻?hù)提供專(zhuān)業(yè)、及時(shí)的服務(wù)
地址:云南省昆明市白云路368號(hào)
電話(huà):400-871-8716 (工作時(shí)間:09:00-18:00(周一至周五))
何總:23592693
李總:53815112
亚洲日韩在线a在线观看,欧美激情 在线观看,97色伦图片97综合影院,成人AV天堂一二三在线观看,欧美色吧视频在线观看,国产l精品国产亚洲区,久久综合亚洲图片,99久久国产综合精品1,久久AⅤ无码AV高潮AV喷吹,亚洲综合无码一区二区三区不卡
亚洲黄片一区| 成年人精品视频| 自拍偷自拍亚洲精品第2页| 亚洲精品无码AⅤ片影音先锋 | AV无码AV天天AV天天爽| 国产精品免费久久久免费| av无码精品一区二区三区三级| 高H无码大尺度肉免费视频| 亚洲AV无码国产永久播放蜜芽| 曰韩精品无码一区二区三区视频 | 欧美人体一区二区三区视频| 四十路の五十路熟女豊満| 亚洲AV无码有乱码在线观看| 国内免费AV网站在线观看 | 人妻少妇精品视频三区二区一区| 97久久天天综合色天天综合色hd| 午夜色无码大片在线观看免费| 伊人成色综合网| 国产裸体美女永久免费无遮挡| 亚洲熟妇色XXXXX亚洲| 亚洲AV无码精品无码麻豆| 九九热视频精品在线| 人妻少妇久久中文字幕一区二区| 亚洲欧美不卡视频| 欧美毛多水多VA天堂| 丁香五月天亚洲综合4438网| 亚洲性无码一区二区三区| 在线无码视频观看草草视频| 国产精品主播在线| 永久无码精品无码| 少妇粗大进出白浆嘿嘿视频| 97国产在线视频公开免费| av大片在线无码永久免费网址| 国产三区四区小泽玛利亚| 免费无码AV一区二区| 国产成人精品日本亚洲直接| 无码A级毛片日韩精品| 国产精品视频第一区二区三区| 丰满人妻av无码一区二区三区| 久久99精品久久久久久齐齐| 亚洲高清无码视频在线观看|