epplus之值写不进去解决方案

一、背景

今天在C#中使用epplus给excel表格写入值时,发现其他行的值都可以正常写入,但是有一行值不能写入,并且这行如果之前有值,也会在保存excel之后,值被清空。

二、解决思路

将当前所引用的epplus组件升级为最新的稳定版。
源代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OfficeOpenXml;
using System.IO;

namespace InsertValueIntoExcelWithEpplus
{
    class Program
    {
        static void Main(string[] args)
        {
            //Excel文件所在的地址
		    FileInfo fileInfo= new FileInfo(@"xxx.xlsx");
            using (ExcelPackage excelPackage= new ExcelPackage(fileInfo))
            {
                //指定需要写入的sheet名
                ExcelWorksheet excelWorksheet= excelPackage.Workbook.Worksheets["sheet名字"];
                //比如修改第一行,第一列的值为 0
                excelWorksheet.Cells[1, 1].Value = 0;
                //修改第一行,第二列的值为 你好
                excelWorksheet.Cells[1, 2].Value = "你好";
                //然后保存即可
                excelPackage.Save();
            }
        }
    }
}

以前写入都好好的,不知道这次为什么写不进去。
解决方案:当前所用的epplus版本是4.5.3.1,删除了epplus4.5.3.1,然后通过nuget安装了最新的稳定版5.1.2.0,这个时候就可以正常写入了。这应该是epplus4.5.3.1的一个bug,找了好久,通过换epplus版本才解决!

三、注意事项

1.当找不到程序的bug时,有可能是组件自身的bug,尝试升级为最新的组件,看能否解决问题,举一反三。
2.大家好,我是黑夜の骑士,欢迎大家关注我的博客,笔者将持续输出BIM相关软件开发、移动互联网开发以及游戏编程干货;
3.欢迎加入BIM行业开发交流群,获取更多开发资料 群号:711844216
4.欢迎加入U3D魔法师交流群,共同学习进步,群号:1105535938

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章