• NPOIExcel


    public class NPOIExcel
        {
            private string _title;
            private string _sheetName;
            private string _filePath;
    
            /// <summary>
            /// 导出到Excel
            /// </summary>
            /// <param name="table"></param>
            /// <returns></returns>
            public bool ToExcel(DataTable table)
            {
                FileStream fs = new FileStream(this._filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                IWorkbook workBook = new HSSFWorkbook();
                this._sheetName = this._sheetName.IsEmpty() ? "sheet1" : this._sheetName;
                ISheet sheet = workBook.CreateSheet(this._sheetName);
    
                //处理表格标题
                IRow row = sheet.CreateRow(0);
                row.CreateCell(0).SetCellValue(this._title);
                sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, table.Columns.Count - 1));
                row.Height = 500;
    
                ICellStyle cellStyle = workBook.CreateCellStyle();
                IFont font = workBook.CreateFont();
                font.FontName = "微软雅黑";
                font.FontHeightInPoints = 17;
                cellStyle.SetFont(font);
                cellStyle.VerticalAlignment = VerticalAlignment.Center;
                cellStyle.Alignment = HorizontalAlignment.Center;
                row.Cells[0].CellStyle = cellStyle;
    
                //处理表格列头
                row = sheet.CreateRow(1);
                for (int i = 0; i < table.Columns.Count; i++)
                {
                    row.CreateCell(i).SetCellValue(table.Columns[i].ColumnName);
                    row.Height = 350;
                    sheet.AutoSizeColumn(i);
                }
    
                //处理数据内容
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    row = sheet.CreateRow(2 + i);
                    row.Height = 250;
                    for (int j = 0; j < table.Columns.Count; j++)
                    {
                        row.CreateCell(j).SetCellValue(table.Rows[i][j].ToString());
                        sheet.SetColumnWidth(j, 256 * 15);
                    }
                }
    
                //写入数据流
                workBook.Write(fs);
                fs.Flush();
                fs.Close();
    
                return true;
            }
    
            /// <summary>
            /// 导出到Excel
            /// </summary>
            /// <param name="table"></param>
            /// <param name="title"></param>
            /// <param name="sheetName"></param>
            /// <returns></returns>
            public bool ToExcel(DataTable table, string title, string sheetName, string filePath)
            {
                this._title = title;
                this._sheetName = sheetName;
                this._filePath = filePath;
                return ToExcel(table);
            }
        }
  • 相关阅读:
    上传图片时判断图片的模式GRB或CMYK
    正则表达式的6中使用
    SqlServer获得存储过程的返回值
    从零学习wcf(一)
    等比例缩小图片
    模仿Jquery Tab
    jquery ajax调用一般处理程序
    一种感觉
    "敏捷软件开发" 读书笔记叙
    荣迁贵宝地
  • 原文地址:https://www.cnblogs.com/sunxuchu/p/5790835.html
Copyright © 2020-2023  润新知