C#-NPOI操作EXCEL

1.获取NUGET NPOI包。

 

2.引用命名空间

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.HSSF.UserModel;

 

3创建excel

 

 

            ///创建excel
            ///


            //创建一个工作簿,2007版以上的后缀为.xlsx
            IWorkbook workbook = new XSSFWorkbook();
            //2003版本后缀为.xls
            IWorkbook workbook = new HSSFWorkbook();
            //创建一个sheet
            ISheet sheet = workbook.CreateSheet("sheet1");
            //在sheet中创建一行
            IRow row = sheet.CreateRow(0);
            //在该行中创建一个格子
            ICell cell = row.CreateCell(0);
            //给该格子赋值
            cell.SetCellValue("shanghai");

 

 

读取excel

            ///读取excel
            ///

            //打开文件流
            FileStream fs = File.OpenRead(filePath);
            //打开工作簿
            IWorkbook workbook = new XSSFWorkbook(fs);
            //读第一个sheet
            ISheet sheet = workbook.GetSheetAt(0);
            //读取该sheet的第一行
            IRow firstRow = sheet.GetRow(0);
            //读取第一行第一个格子
            ICell cell = firstRow.GetCell(i);

            //类型不同读取不同的值
            switch (cell.CellType)
            {
                case CellType.Blank:
                    dataRow[j] = "";
                    break;
                case CellType.Numeric:
                    short format = cell.CellStyle.DataFormat;
                    //对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理
                    if (format == 14 || format == 31 || format == 57 || format == 58)
                        dataRow[j] = cell.DateCellValue;
                    else
                        dataRow[j] = cell.NumericCellValue;
                    break;
                case CellType.String:
                    dataRow[j] = cell.StringCellValue;
                    break;
            }

 

excel格子样式

            ///格子样式
            ///

            //格子背景绿色的样式
            ICellStyle Green = workbook.CreateCellStyle();
            Green.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Green.Index;
            Green.FillPattern = FillPattern.SolidForeground;

            //格子加上边框
            Green.BorderBottom = BorderStyle.Thin;
            Green.BorderLeft = BorderStyle.Thin;
            Green.BorderRight = BorderStyle.Thin;
            Green.BorderTop = BorderStyle.Thin;

        //格子使用该样式
        cell.CellStyle = Green;

 

excel公式

            ///使用excel公式
            ///

            //将sss公式计算后的值付给该格子
            string sss = "SUM(C1:F1)";
            cell.SetCellFormula(sss);

 

posted @ 2019-05-08 11:54  JinweiChang  阅读(422)  评论(0编辑  收藏  举报