excel - EPPlus 改变细胞内部颜色
问题描述
我在使用 EPPlus 时发现了一些非常奇怪的东西,而且我在网上的任何地方都找不到解决方案(我也没有找到任何有同样问题的人)。幸运的是,一段时间后,我发现了如何修复它,因为我找不到任何关于它的信息,我想节省其他人的时间并在此处记录。请注意,过去一周是我第一次使用 EPPlus,所以如果这个问题非常琐碎并且每个人都已经知道,我很抱歉。
问题
我正在尝试使用 EPPlus 将数据放入现有的 Excel 模板中。Excel 文件的其中一张表如下所示:
你会说这没什么奇怪的。然而,当我在我的代码中打开这个 Excel 文件并使用 EPPlus 添加值并保存它时,结果如下:
表中的数字当然是故意的,但是怎么突然变成了紫色的底色!?还有为什么它不会发生在特定的细胞上。代码中没有任何东西可以对样式做任何事情。我只向表中添加值。
另一个奇怪的事情是这发生在多台电脑上,但不是全部。
解决方案
根本问题
看了一圈才发现原来标准的造型突然呈现出同样的紫色。
前
后
我仍然不明白为什么它会改变颜色,但确实如此。然后在github的某个地方,有人提到你需要改变EPPlus的代码来摆脱这个。它提到因为 Excel 电子表格是用英语以外的其他语言创建的,所以找不到“Normal”样式,因为在这种情况下它在荷兰语中被命名为“Standaard”,您必须将“Normal”更改为“Standaard”在代码中。
但是我只是用Nuget拿到了一个包,并不想创建自己的包,更重要的是:如果我下次有一个用英文版创建的电子表格怎么办?
解决方案
对于这么长的故事,解决方案很简单:在您的工作簿中,在即时窗口的 VBA 中,键入以下代码
Thisworkbook.Styles.Add("Normal")
工作簿现在具有称为“正常”的自定义格式。由于您的正常格式很可能只是空白,因此这将向您显示正确的样式。
推荐阅读
- oracle - 权限缺失 - Oracle System 事件触发问题 12c
- javascript - 如何在 iframe 中实现 Frame Buster Javascript
- import - 如何在 git 子模块中组织多个协议缓冲区文件?
- javascript - 选择禁用不将选定的值传递给 php 代码
- angular - 如何组合从在 Angular 7 和 RsJS 中的另一个 Observable 结果上生成的循环内获取的 Observables 数据中的数据?
- python-3.x - 如何修复“Django celery 正在获取任务并开始处理但未完成全部工作”
- powershell - 为什么 PowerShell 将导入的 CSV 的第一个条目列为变量名?
- java - Android RecyclerView 与 EditText 洗牌问题
- json - 使用 JSON 发送什么参数联系表 7 使用 API
- java - 获取pdf中单词的坐标