EPPlus 改变电池内部颜色

EPPlus changes cell interior color

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

问题

我正在尝试使用 EPPlus 将数据放入现有的 Excel 模板中。 Excel 文件的其中一张如下所示:

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

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

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

底层问题

看了一圈才发现原来标准的造型突然变成了紫色。

之前

之后

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

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

解决方案

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

Thisworkbook.Styles.Add("Normal")

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