zoukankan      html  css  js  c++  java
  • 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);
            }
        }
  • 相关阅读:
    postman的使用
    测试模型的发展论
    winform 控件没有Cursor属性时的处理办法
    【C#】两个DataTable关联查询(inner join、left join)C#代码
    【C#】datetimepicker里面如何设置日期为当天日期,而时间设为0:00或23:59?
    【C#】string格式的日期转为DateTime类型及时间格式化处理方法
    js解析后台传过来的json
    shell做成csv文件
    Hibernate查询总的记录数
    在引入的css或者js文件后面加参数的作用
  • 原文地址:https://www.cnblogs.com/sunxuchu/p/5790835.html
Copyright © 2011-2022 走看看