亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

通過NPOI操作Excel

2019-11-17 02:58:03
字體:
來源:轉載
供稿:網友

通過NPOI操作Excel

最近在做的一個項目中需要生成Excel,通過學習使用NPOI實現了相關需求,寫了一個簡便操作的類,記錄如下:

public class NPOIHelperForExcel    {        #region excel文件屬性        //作者        public string Author { get; set; }        //標題        public string Title { get; set; }        //主題        public string Subject { get; set; }        //標記        public string KeyWords { get; set; }        //創建程序信息        public string applicationName { get; set; }        //最后一次保存者        public string LastAuthor { get; set; }        //備注        public string Comments { get; set; }        //創建內容的時間        public DateTime? CreateDateTime { get; set; }        //最后一次打印的時間        public DateTime? LastPRinted { get; set; }        //最后一次保存的時間        public DateTime? LastSaveDateTime { get; set; }        //公司        public string Company { get; set; }        //管理者        public string Manager { get; set; }        //比例        public bool Scale { get; set; }        #endregion        #region 導出,將DataTable導出為Excel文件        /// <summary>        /// DataTable導出到Excel文件        /// </summary>        /// <param name="dtSource">源DataTable</param>        /// <param name="headerTextList">表頭摘要信息</param>        /// <param name="strFileName">保存位置</param>        public void Export(DataTable dtSource, List<String> headerTextList, string strFileName)        {            using (MemoryStream ms = Export(dtSource, headerTextList))            {                using (FileStream fs = new FileStream(strFileName, FileMode.Create, Fileaccess.Write))                {                    byte[] data = ms.ToArray();                    fs.Write(data, 0, data.Length);                    fs.Flush();                }            }        }        /// <summary>        /// DataTable導出到Excel的MemoryStream        /// </summary>        /// <param name="dtSource">源DataTable</param>        /// <param name="headerTextList">表頭摘要信息</param>        public MemoryStream Export(DataTable dtSource, List<String> headerTextList)        {            HSSFWorkbook workbook = new HSSFWorkbook();            ISheet sheet = workbook.CreateSheet("sheet1");            //設置Excel文件屬性信息            SetFileProperty(workbook);            HSSFCellStyle dateStyle = (HSSFCellStyle)workbook.CreateCellStyle();            HSSFDataFormat format = (HSSFDataFormat)workbook.CreateDataFormat();            dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd");            //計算列寬            int[] arrColWidth = new int[dtSource.Columns.Count];            foreach (DataColumn item in dtSource.Columns)            {                arrColWidth[item.Ordinal] = Encoding.GetEncoding(936).GetBytes(item.ColumnName.ToString()).Length;            }            //獲取每一列的最大列寬            for (int i = 0; i < dtSource.Rows.Count; i++)            {                for (int j = 0; j < dtSource.Columns.Count; j++)                {                    int intTemp = Encoding.GetEncoding(936).GetBytes(dtSource.Rows[i][j].ToString()).Length;                    if (intTemp > arrColWidth[j])                    {                        arrColWidth[j] = intTemp;                    }                }            }            int rowIndex = 0;            foreach (DataRow row in dtSource.Rows)            {                #region 新建表,填充表頭,填充列頭,樣式                if (rowIndex == 65535 || rowIndex == 0)                {                    if (rowIndex != 0)                    {                        sheet = workbook.CreateSheet();                    }                    #region 表頭及樣式                    for (int i = 0; i < headerTextList.Count; i++)                    {                        HSSFRow headerRow = (HSSFRow)sheet.CreateRow(i);                        headerRow.HeightInPoints = 18;                        headerRow.CreateCell(0).SetCellValue(headerTextList[i]);                        HSSFCellStyle headerStyle = (HSSFCellStyle)workbook.CreateCellStyle();                        headerStyle.Alignment = HorizontalAlignment.Left;                        HSSFFont font = (HSSFFont)workbook.CreateFont();                        font.FontHeightInPoints = 14;                        //font.Boldweight = 700;                        headerStyle.SetFont(font);                        headerRow.GetCell(0).CellStyle = headerStyle;                        sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, dtSource.Columns.Count - 1));                    }                    #endregion                    #region 列頭及樣式                    {                        HSSFRow headerRow = (HSSFRow)sheet.CreateRow(headerTextList.Count);                        HSSFCellStyle headStyle = (HSSFCellStyle)workbook.CreateCellStyle();                        headStyle.Alignment = HorizontalAlignment.Center;                        HSSFFont font = (HSSFFont)workbook.CreateFont();                        font.FontHeightInPoints = 10;                        font.Boldweight = 700;                        headStyle.SetFont(font);                        foreach (DataColumn column in dtSource.Columns)                        {                            headerRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);                            headerRow.GetCell(column.Ordinal).CellStyle = headStyle;                            //設置列寬                            sheet.SetColumnWidth(column.Ordinal, (arrColWidth[column.Ordinal] + 1) * 256);                        }                    }                    #endregion                    rowIndex = headerTextList.Count + 1;                }                #endregion                #region 填充表格內容                HSSFRow dataRow = (HSSFRow)sheet.CreateRow(rowIndex);                foreach (DataColumn column in dtSource.Columns)                {                    HSSFCell newCell = (HSSFCell)dataRow.CreateCell(column.Ordinal);                    string drValue = row[column].ToString();                    switch (column.DataType.ToString())                    {                        case "System.String": //字符串類型                            newCell.SetCellValue(drValue);                            break;                        case "System.DateTime": //日期類型                            DateTime dateV;                            DateTime.TryParse(drValue, out dateV);                            newCell.SetCellValue(dateV);                            newCell.CellStyle = dateStyle; //格式化顯示                            break;                        case "System.Boolean": //布爾型                            bool boolV = false;                            bool.TryParse(drValue, out boolV);                            newCell.SetCellValue(boolV);                            break;                        case "System.Int16": //整型                        case "System.Int32":                        case "System.Int64":                        case "System.Byte":                            int intV = 0;                            int.TryParse(drValue, out intV);                            newCell.SetCellValue(intV);                            break;                        case "System.Decimal": //浮點型                        case "System.Double":                            double doubV = 0;                            double.TryParse(drValue, out doubV);                            newCell.SetCellValue(doubV);                            break;                        case "System.DBNull": //空值處理                            newCell.SetCellValue("");                            break;                        default:                            newCell.SetCellValue("");                            break;                    }                }                #endregion                rowIndex++;            }            using (MemoryStream ms = new MemoryStream())            {                workbook.Write(ms);                ms.Flush();                ms.Position = 0;                return ms;            }        }        /// <summary>        /// 用于Web導出        /// </summary>        /// <param name="dtSource">源DataTable</param>        /// <param name="headerTextList">表
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品露脸国产偷人在视频| 久久久亚洲国产天美传媒修理工| 国产福利成人在线| 久久婷婷国产麻豆91天堂| 成人激情视频在线观看| 97精品国产97久久久久久免费| 一区二区三区视频免费在线观看| 日韩亚洲国产中文字幕| 97久久伊人激情网| 日韩av最新在线| 国产精品欧美亚洲777777| 国产精品露脸自拍| 亚洲男人天堂2024| 中文字幕久精品免费视频| 中文字幕亚洲第一| 日韩欧美国产一区二区| 亚洲精品suv精品一区二区| 欧美日韩在线视频首页| 17婷婷久久www| 欧美精品福利在线| 久久99精品久久久久久噜噜| 国产欧美最新羞羞视频在线观看| 在线视频亚洲欧美| 九九热r在线视频精品| 欧美高清在线视频观看不卡| 一本一道久久a久久精品逆3p| 国产精品亚洲美女av网站| 国产日韩在线播放| 91精品国产高清自在线看超| 久久高清视频免费| 欧美与黑人午夜性猛交久久久| 欧美激情视频三区| 欧美成人三级视频网站| 久久精品视频免费播放| 欧美成人午夜免费视在线看片| 一区三区二区视频| 国产91在线播放| 久久精品夜夜夜夜夜久久| 精品国产91久久久| 欧美在线视频观看免费网站| 欧美性xxxxx极品娇小| 亚洲国产91精品在线观看| 欧美与黑人午夜性猛交久久久| 麻豆成人在线看| 日韩在线播放视频| 黑人精品xxx一区一二区| 精品欧美国产一区二区三区| 91免费欧美精品| 日韩中文理论片| 亚洲综合av影视| 久久久女人电视剧免费播放下载| 国产高清在线不卡| 亚洲成人a**站| 欧美一级高清免费播放| 高清亚洲成在人网站天堂| 欧美午夜精品伦理| 亚洲乱码一区av黑人高潮| 国产精品成人一区二区三区吃奶| 亚洲国产欧美日韩精品| 亚洲伊人成综合成人网| 精品日本美女福利在线观看| 欧美在线一区二区视频| 亚洲精品福利资源站| 日韩av在线天堂网| 91久久嫩草影院一区二区| 亚洲区bt下载| 亚洲天堂成人在线| 日韩在线视频中文字幕| 中文字幕久精品免费视频| 热久久视久久精品18亚洲精品| 欧美激情第99页| 国产日产亚洲精品| 国产精品一区二区久久久| zzjj国产精品一区二区| 中文字幕精品av| 亚洲热线99精品视频| 日韩免费黄色av| 国产成人一区二区三区小说| 日韩中文理论片| 中文一区二区视频| 欧美日韩免费一区| 国产亚洲美女久久| 伊人亚洲福利一区二区三区| 丝袜美腿亚洲一区二区| 亚洲色图日韩av| 日本久久久久亚洲中字幕| 97国产在线观看| 久热精品视频在线观看一区| 久久久91精品| 欧美尤物巨大精品爽| 久久久久国产一区二区三区| 欧美黑人一级爽快片淫片高清| 亚洲国产成人精品久久| 久久久av一区| 国产视频亚洲视频| 日韩**中文字幕毛片| 欧美在线亚洲一区| 国产日韩欧美另类| 精品国产老师黑色丝袜高跟鞋| 日韩av在线不卡| 国内精品免费午夜毛片| 日本欧美国产在线| 日韩日本欧美亚洲| 久久免费精品视频| 久久久国产视频91| 欧美日韩国产综合新一区| 日韩日本欧美亚洲| 成人性教育视频在线观看| 亚洲全黄一级网站| 久久久国产成人精品| 另类图片亚洲另类| 国内精品久久久久久影视8| 国产精品美女视频网站| 国产91成人video| 欧美做受高潮电影o| 91爱爱小视频k| 日韩免费av一区二区| 国产偷国产偷亚洲清高网站| 色哟哟亚洲精品一区二区| 成人做爰www免费看视频网站| 久久夜色精品国产亚洲aⅴ| 国产精品入口夜色视频大尺度| 久久久久一本一区二区青青蜜月| 欧美中文在线免费| 国产精品av在线| 欧美日韩在线视频一区| 国产精品老牛影院在线观看| 51午夜精品视频| 97久久久免费福利网址| 亚洲精品女av网站| 久久人人爽人人爽人人片av高请| 久久影视电视剧免费网站| 亚洲va欧美va在线观看| 国产黑人绿帽在线第一区| 亚洲国产精品视频在线观看| 欧美高清无遮挡| 在线播放国产一区二区三区| 久久精品国产久精国产一老狼| 亚洲综合国产精品| 亚洲精品小视频在线观看| 91在线网站视频| 欧美裸体xxxxx| 国产亚洲日本欧美韩国| 亚洲日韩第一页| 亚洲精品美女久久久| 久久成年人免费电影| 国产精品黄色av| 久久91超碰青草是什么| 91网站免费看| 不卡在线观看电视剧完整版| 欧美在线视频观看| 最近中文字幕日韩精品| 超碰91人人草人人干| 亚洲欧美在线磁力| 成人激情av在线| 在线视频国产日韩| 国产一区二区美女视频| 亚洲毛片在线免费观看| 久久人人爽国产| 久久99精品国产99久久6尤物| 乱亲女秽乱长久久久| 成人国产精品色哟哟| 麻豆乱码国产一区二区三区| 欧美精品亚州精品|