我在使用EPPlus时发现了一些非常奇怪的东西,而且在网上找不到任何解决方案(我也没有找到同样问题的人)。幸运的是,过了一段时间,我找到了解决方法,由于找不到任何相关信息,我想节省别人的时间,并在此处进行记录。请注意,过去一周是我第一次使用EPPlus,因此,如果这个问题非常微不足道并且每个人都已经知道这一点,我感到抱歉。
问题
我正在尝试使用EPPlus将数据放入现有的Excel模板中。 Excel文件的一张纸如下所示:
您会说这没什么奇怪的。但是,当我在代码中打开此Excel文件并使用EPPlus添加值并保存时,结果如下:
当然,表中的数字是有意为之的,但是它怎么突然变成紫色背景!?还有为什么它不发生在特定的细胞上。代码中没有任何内容可以与样式相关。我只将值添加到表中。
另一个奇怪的是,这是在多台PC上发生的,而不是在所有PC上发生的。
答案 0 :(得分:0)
潜在问题
环顾四周后,我发现标准样式突然显示出相同的紫色。
之前
之后
我仍然不明白为什么它会改变颜色,但是确实会改变。 然后在github上的某个地方,有人提到您需要更改EPPlus的代码以摆脱此情况。它提到,因为Excel电子表格是用英语以外的其他语言创建的,所以找不到“普通”样式,因为在这种情况下,它以荷兰语命名为“ Standaard”,因此您必须将“ Normal”更改为“ Standaard”在代码中。
但是我只是用Nuget来获取软件包,并且不想创建自己的软件包,更重要的是:如果下次我有一个英语版本的电子表格怎么办?
解决方案
长话短说,解决方案很简单:在工作簿中的即时窗口中,在VBA中,键入以下代码
Thisworkbook.Styles.Add("Normal")
工作簿现在具有称为“普通”的自定义格式。由于您的常规格式可能只是空白,因此可以为您显示正确的样式。