首页 > 解决方案 > EPPlus 改变细胞内部颜色

问题描述

我在使用 EPPlus 时发现了一些非常奇怪的东西,而且我在网上的任何地方都找不到解决方案(我也没有找到任何有同样问题的人)。幸运的是,一段时间后,我发现了如何修复它,因为我找不到任何关于它的信息,我想节省其他人的时间并在此处记录。请注意,过去一周是我第一次使用 EPPlus,所以如果这个问题非常琐碎并且每个人都已经知道,我很抱歉。

问题

我正在尝试使用 EPPlus 将数据放入现有的 Excel 模板中。Excel 文件的其中一张表如下所示: 在此处输入图像描述

你会说这没什么奇怪的。然而,当我在我的代码中打开这个 Excel 文件并使用 EPPlus 添加值并保存它时,结果如下:

在此处输入图像描述

表中的数字当然是故意的,但是怎么突然变成了紫色的底色!?还有为什么它不会发生在特定的细胞上。代码中没有任何东西可以对样式做任何事情。我只向表中添加值。

另一个奇怪的事情是这发生在多台电脑上,但不是全部。

标签: excelvb.netepplus

解决方案


根本问题

看了一圈才发现原来标准的造型突然呈现出同样的紫色。

正常造型

在此处输入图像描述

我仍然不明白为什么它会改变颜色,但确实如此。然后在github的某个地方,有人提到你需要改变EPPlus的代码来摆脱这个。它提到因为 Excel 电子表格是用英语以外的其他语言创建的,所以找不到“Normal”样式,因为在这种情况下它在荷兰语中被命名为“Standaard”,您必须将“Normal”更改为“Standaard”在代码中。

但是我只是用Nuget拿到了一个包,并不想创建自己的包,更重要的是:如果我下次有一个用英文版创建的电子表格怎么办?

解决方案

对于这么长的故事,解决方案很简单:在您的工作簿中,在即时窗口的 VBA 中,键入以下代码

Thisworkbook.Styles.Add("Normal")

工作簿现在具有称为“正常”的自定义格式。由于您的正常格式很可能只是空白,因此这将向您显示正确的样式。


推荐阅读