c# – 使用十六进制更改Excel单元格的背景颜色Excel将在电子表格中显示完全不同的颜色

所以我设置一个Excel单元格的内部颜色为一定值,如下所示:
worksheet.Cells[1,1].Interior.Color = 0xF1DCDB;

但是,当我在Excel中打开电子表格时,我看到出现的颜色是完全不同的(在上述情况下,生成的电子表格中的颜色为0xDCDCEF).我尝试了几种不同的颜色,它总是改变它,我没有看到一个模式.

有什么理由吗?我甚至尝试通过编写Color.FromArgb(241,220,219).ToArgb()来设置颜色,并发生相同的事情.

解决方法

经过大量测试,我终于弄清楚了,这真的很简单.显然,Excel的Interop库有一个错误,正在颠倒红色和蓝色的值,所以我不需要传递一个十六进制的RGB,我需要通过BGR,突然之间的颜色工作正常.我很惊讶,互联网上的任何其他地方都没有记录这个错误.

所以如果任何人遇到这个问题,只需传递Excel值在BGR值. (或者如果使用Color.FromArgb(),则传递Color.FromArgb(B,G,R))

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString("x2"));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include "WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...