예제 #1
0
        public void TestThemesTableColors()
        {
            XSSFWorkbook workbook = XSSFTestDataSamples.OpenSampleWorkbook(testFile);

            String[] rgbExpected = new string[] {
                "ffffff", // Lt1
                "000000", // Dk1
                "eeece1", // Lt2
                "1f497d", // DK2
                "4f81bd", // Accent1
                "c0504d", // Accent2
                "9bbb59", // Accent3
                "8064a2", // Accent4
                "4bacc6", // Accent5
                "f79646", // Accent6
                "0000ff", // Hlink
                "800080"  // FolHlink
            };
            int i = 0;

            foreach (IRow row in workbook.GetSheetAt(0))
            {
                XSSFFont font = (XSSFFont)row.GetCell(0).CellStyle.GetFont(workbook);

                XSSFColor color = ((XSSFFont)font).GetXSSFColor();
                Assert.AreEqual(rgbExpected[i], BitConverter.ToString(color.GetRgb()).Replace("-", "").ToLower(), "Failed color theme " + i);
                long themeIdx = font.GetCTFont().color[0].theme;
                Assert.AreEqual(i, themeIdx, "Failed color theme " + i);
                i++;
            }
        }
예제 #2
0
        public void FromColor(XSSFColor color)
        {
            var values = color.GetRgb();

            R = values[0];
            G = values[1];
            B = values[2];
        }
예제 #3
0
        public void TestColorFromTheme()
        {
            XSSFWorkbook wb = XSSFTestDataSamples.OpenSampleWorkbook("styles.xlsx");
            XSSFCell     cellWithThemeColor = (XSSFCell)wb.GetSheetAt(0).GetRow(10).GetCell(0);
            //color RGB will be extracted from theme
            XSSFColor foregroundColor = (XSSFColor)((XSSFCellStyle)cellWithThemeColor.CellStyle).FillForegroundColorColor;

            byte[] rgb = foregroundColor.GetRgb();
            Assert.AreEqual(rgb[0], 238);
            Assert.AreEqual(rgb[1], 236);
            Assert.AreEqual(rgb[2], 225);
            byte[] rgbWithTint = foregroundColor.GetRgbWithTint();
            Assert.AreEqual(rgbWithTint[0], 244);
            Assert.AreEqual(rgbWithTint[1], 243);
            Assert.AreEqual(rgbWithTint[2], 236);
        }
예제 #4
0
        public void TestColorFromTheme()
        {
            XSSFWorkbook wb = XSSFTestDataSamples.OpenSampleWorkbook("styles.xlsx");
            XSSFCell     cellWithThemeColor = (XSSFCell)wb.GetSheetAt(0).GetRow(10).GetCell(0);
            //color RGB will be extracted from theme
            XSSFColor foregroundColor = (XSSFColor)((XSSFCellStyle)cellWithThemeColor.CellStyle).FillForegroundColorColor;

            byte[] rgb         = foregroundColor.GetRgb();
            byte[] rgbWithTint = foregroundColor.GetRgbWithTint();
            // Dk2
            Assert.AreEqual(rgb[0], 31);
            Assert.AreEqual(rgb[1], 73);
            Assert.AreEqual(rgb[2], 125);
            // Dk2, lighter 40% (tint is about 0.39998)
            // 31 * (1.0 - 0.39998) + (255 - 255 * (1.0 - 0.39998)) = 120.59552 => 120 (byte)
            // 73 * (1.0 - 0.39998) + (255 - 255 * (1.0 - 0.39998)) = 145.79636 => -111 (byte)
            // 125 * (1.0 - 0.39998) + (255 - 255 * (1.0 - 0.39998)) = 176.99740 => -80 (byte)
            Assert.AreEqual(rgbWithTint[0], 120);
            Assert.AreEqual((sbyte)rgbWithTint[1], -111);
            Assert.AreEqual((sbyte)rgbWithTint[2], -80);
        }