麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

通過NPOI操作Excel

2019-11-17 02:58:03
字體:
供稿:網(wǎng)友

通過NPOI操作Excel

最近在做的一個項目中需要生成Excel,通過學(xué)習(xí)使用NPOI實現(xiàn)了相關(guān)需求,寫了一個簡便操作的類,記錄如下:

public class NPOIHelperForExcel    {        #region excel文件屬性        //作者        public string Author { get; set; }        //標(biāo)題        public string Title { get; set; }        //主題        public string Subject { get; set; }        //標(biāo)記        public string KeyWords { get; set; }        //創(chuàng)建程序信息        public string applicationName { get; set; }        //最后一次保存者        public string LastAuthor { get; set; }        //備注        public string Comments { get; set; }        //創(chuàng)建內(nèi)容的時間        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 導(dǎo)出,將DataTable導(dǎo)出為Excel文件        /// <summary>        /// DataTable導(dǎo)出到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導(dǎo)出到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");            //設(shè)置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;                            //設(shè)置列寬                            sheet.SetColumnWidth(column.Ordinal, (arrColWidth[column.Ordinal] + 1) * 256);                        }                    }                    #endregion                    rowIndex = headerTextList.Count + 1;                }                #endregion                #region 填充表格內(nèi)容                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導(dǎo)出        /// </summary>        /// <param name="dtSource">源DataTable</param>        /// <param name="headerTextList">表
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 视频一区二区三区中文字幕 | 国产69精品久久久久久久久久 | 视频一区二区三区中文字幕 | 久草久视频| 日本不卡一区二区三区在线 | 亚洲免费资源 | 国产精品视频yy9299一区 | 韩国美女一区 | 精品国产一区二区三区四区在线 | 国产色91 | 在线播放免费播放av片 | 性片网站| 在线免费av观看 | 在线成人亚洲 | 欧美日韩免费看 | 草莓视频久久 | 久草在线视频免费播放 | 欧美在线观看视频网站 | 久久精品视频一区二区三区 | 中文字幕精品久久 | 特级a欧美做爰片毛片 | 羞羞答答影院 | 亚洲射逼| 免费看日韩片 | 欧美在线 | 亚洲 | 免费视频观看 | 国产精品www | 在线成人免费观看www | 一级做a爱片久久 | 九一国产精品 | 中文字幕在线免费播放 | avav在线播放| 久久精品日产第一区二区三区 | 国产va在线观看 | 欧美福利视频一区二区 | 免费毛片小视频 | 国产精品视频一区二区三区四区国 | 久久老司机 | 欧美黄色大片免费观看 | 毛片在线免费观看完整版 | 看中国一级毛片 |