• C#使用NPOI读写Excel的注意事项


    NPOI的基本使用参照:https://www.cnblogs.com/lixiaobin/p/NPOI.html

    既存文档读取修改方法

    *既存Excel文档修改保存注意使用FileMode.Create,不然文档将会被损害无法打开。

    *Excel文档不能有开启共享,不能有Object对象存在,否则重写的Excel文档会被损害无法打开。

                IWorkbook book = null;
                using (var file = File.Open(path, FileMode.OpenOrCreate, FileAccess.Read))
                {
                    book = WorkbookFactory.Create(file);
                    file.Close();
                }
    
                ISheet outputSheet = book?.GetSheet(sheetName) ?? book?.CreateSheet(sheetName);
    
                // 修改数据
                // 省略
    
                using (var file = new FileStream(path, FileMode.Create, FileAccess.Write))
                {
                    book.Write(file);
                    file.Close();
                }

    单元格复制方法

    如果你想将一个Excel文档的值复制到另一个Excel文档,格式设置需要注意使用CloneStyleFrom方法。(最多只能创建4000个CellStyle)

                var sheet = book.CreateSheet("test");
                var row = sheet.CreateRow(1);
    
                var newCell=row.CreateCell(1);
                newCell.SetCellValue(oldCell.StringCellValue);
    
                var newCellStyle = book.CreateCellStyle();
                newCellStyle.CloneStyleFrom(oldCell.CellStyle);
    
                newCell.CellStyle = newCellStyle;

    颜色自定义

    如果NPOI自带的颜色不满足要求,可以自定义颜色。HSSFWorkbook的时候只能替换设置,XSSFWorkbook的场合是可以添加新的色调。

                var style = workbook.CreateCellStyle();
                style.BorderBottom = BorderStyle.Thin;
                style.BorderLeft = BorderStyle.Thin;
                style.BorderRight = BorderStyle.Thin;
                style.BorderTop = BorderStyle.Thin;
    
                var sysColor = Color.FromArgb(0, 32, 96);
                if (workbook is HSSFWorkbook)
                {
                    style.FillForegroundColor = IndexedColors.DarkBlue.Index;
                    ((HSSFWorkbook)workbook).GetCustomPalette().SetColorAtIndex(IndexedColors.DarkBlue.Index, sysColor.R, sysColor.G, sysColor.B);
                }
                else
                {
                    ((XSSFCellStyle)style).SetFillForegroundColor(new XSSFColor(sysColor));
                }
  • 相关阅读:
    Arm的几种工作模式
    Linux 串口驱动初始化前置定位crash log
    GPS的经纬度格式及转换
    git 常用命令
    windows 下 mongodb studio 3t 破解无限使用脚本
    从头开始 一、第一天
    十九、IDEA的pom文件手动添加依赖
    十八、{ "a", "ab", "ac", "abc", "de", "bc", "e" }不使用Arrays.sort()进行排序
    十七、Java中数组常见的几种排序方法!
    十六、IDEA创建一个maven工程
  • 原文地址:https://www.cnblogs.com/lixiaobin/p/NPOIProblem.html
Copyright © 2020-2023  润新知