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);
            }
        }
  • 相关阅读:
    测试面试题集锦(一)| 软件测试常见必考问题与流程篇(附答案)
    测试开发赏金内推 | BAT 最新高薪急聘岗位,名企测试负责人等你来面!
    Xbox分辨率突然变成640p
    UWP 自定义密码框控件
    前端笔记(Antd将组件设置国际化中文)
    【数据结构与算法】背包问题总结梳理
    Redis网络模型的源码分析
    [MOOC-Java]1.2.1用变量做计算
    [MOOC-Java]1.1.2第一个程序
    [MOOC-Java]1.1.1开发环境配置
  • 原文地址:https://www.cnblogs.com/sunxuchu/p/5790835.html
Copyright © 2011-2022 走看看