zoukankan      html  css  js  c++  java
  • NPOI--------------.Net操作Excel初步使用(导出)

    背景

    因公司项目需要添加数据导出功能故此添加,找了几种方式发现该方式具有 无需依赖本机安装office环境,使用灵活等优点故采用此方式。

    安装

    Nuget 直接安装NPOI即可

    使用方式

    1.根据需要使用2003或者2007的不同选择不同创建操作对象 

    IWorkbook fileWorkbook;
                try
                {
                    fileWorkbook = new XSSFWorkbook();
                }
                catch
                {
                    fileWorkbook = new HSSFWorkbook();
                }

    2.Excel的操作必须要建立在Sheet的基础上 所以需要先建立一个Sheet

        ISheet sheet = fileWorkbook.CreateSheet("Sheet1") as ISheet;

    3.根据需要 可以设置列宽

        sheet.SetColumnWidth(0, 50 * 256);//设置宽度首列

    其中 第一个参数为列索引 第二个参数为字符数   例子代表允许显示50个字符  如100字符 则为100* 256

    4.创建行

    IRow row = sheet.CreateRow(rowIndex);

    注: 行宽度直接用row实例即可修改 如:row.Height=30 * 20;

    5.创建单元格

    ICell cellTitle = row.CreateCell(0);
    cellTitle.SetCellValue($"销售汇总({StartDate}至{EndDate})");

    注: 

      1.0为列索引

      2.第二行为赋值方式展示

    6.设置居中

    //设置单元格格式 居中
                ICellStyle cellstyle = fileWorkbook.CreateCellStyle();
                cellstyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
                cellstyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
                cellTitle.CellStyle = cellstyle;

    直接赋值到所在单元格cellStyle属性即可

    7.合并单元格

    sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 5));//合并单元格 0行0列到0行5列

    参数从左到右分别为 起始行号 结束行号 起始列号 结束列号

    8.保存到文件

    public string OutputClient(IWorkbook fileWorkbook)
            {
                //转为字节数组
                MemoryStream stream = new MemoryStream();
                fileWorkbook.Write(stream);
                var buf = stream.ToArray();
                var path = Path.Combine(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Export");
                string fileName = Path.Combine(path, $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.xls");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                //保存为Excel文件
                using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
                {
                    fs.Write(buf, 0, buf.Length);
                    fs.Flush();
                }
                return fileName;
            }
    保存文件方法

    这里提供一个通用的保存方法 保存到exe 文件目录下的Export 文件夹 没有改文件夹会自动创建 文件名为日期到毫秒

  • 相关阅读:
    MongoDB 比较运算符 $eq$gt
    leetcode — median-of-two-sorted-arrays
    leetcode — longest-substring-without-repeating-characters
    leetcode — add-two-numbers
    leetcode — two-sum-iii-data-structure-design
    leetcode — two-sum-ii-input-array-is-sorted
    leetcode — two-sum
    linux 命令 — sed
    linux 命令 — 文件相关
    linux 命令 — lsof
  • 原文地址:https://www.cnblogs.com/nontracey/p/11082612.html
Copyright © 2011-2022 走看看