From 89066b45b6ddbe52410c03af18d1b7c5a5706441 Mon Sep 17 00:00:00 2001 From: Pieter Sheth-Voss Date: Fri, 17 Apr 2015 11:18:51 -0400 Subject: [PATCH] Save fill color to .rgb but not tint --- bits/47_styxml.js | 10 ++++++---- test.js | 38 ++++++++++++++++++++------------------ xlsx.js | 10 ++++++---- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/bits/47_styxml.js b/bits/47_styxml.js index 71e2b13..b016322 100644 --- a/bits/47_styxml.js +++ b/bits/47_styxml.js @@ -35,7 +35,8 @@ function parse_fills(t, opts) { if (y.theme && themes.themeElements && themes.themeElements.clrScheme) { - fill.bgColor.raw_rgb = rgb_tint(themes.themeElements.clrScheme[fill.bgColor.theme].rgb, fill.fgColor.tint || 0); + fill.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[fill.bgColor.theme].rgb, 0) ; //fill.fgColor.tint || 0); + if (opts.WTF) fill.bgColor.raw_rgb = fill.bgColor.rgb; } /* Excel uses ARGB strings */ if (y.rgb) fill.bgColor.rgb = y.rgb;//.substring(y.rgb.length - 6); @@ -51,7 +52,8 @@ function parse_fills(t, opts) { if (y.tint) fill.fgColor.tint = parseFloat(y.tint); if (y.theme && themes.themeElements && themes.themeElements.clrScheme) { - fill.fgColor.raw_rgb = rgb_tint(themes.themeElements.clrScheme[fill.fgColor.theme].rgb, fill.fgColor.tint || 0); + fill.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[fill.fgColor.theme].rgb, 0); //fill.fgColor.tint || 0); + if (opts.WTF) fill.fgColor.raw_rgb = fill.fgColor.rgb; } /* Excel uses ARGB strings */ @@ -134,7 +136,7 @@ function parse_fonts(t, opts) { if (y.theme) font.color.theme = y.theme; if (y.tint) font.color.tint = y.tint; if (y.theme && themes.themeElements && themes.themeElements.clrScheme) { - font.color.raw_rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0); + font.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0); } if (y.rgb) font.color.rgb = y.rgb; break; @@ -202,7 +204,7 @@ function parse_borders(t, opts) { sub_border.color = {}; if (y.theme) sub_border.color.theme = y.theme; if (y.theme && themes.themeElements && themes.themeElements.clrScheme) { - sub_border.color.raw_rgb = rgb_tint(themes.themeElements.clrScheme[sub_border.color.theme].rgb, sub_border.color.tint || 0); + sub_border.color.rgb = rgb_tint(themes.themeElements.clrScheme[sub_border.color.theme].rgb, sub_border.color.tint || 0); } if (y.tint) sub_border.color.tint = y.tint; diff --git a/test.js b/test.js index c27822d..970a9b1 100644 --- a/test.js +++ b/test.js @@ -765,31 +765,33 @@ describe('parse features', function() { 'A3:A10', 'B3:B10', 'E1:E10', 'F6:F8', /* cols */ 'H1:J4', 'H10' /* blocks */ ]; + + var exp = [ { patternType: 'darkHorizontal', - fgColor: { theme: 9, "tint":-0.249977111117893, raw_rgb: 'B9B9B9' }, - bgColor: { theme: 5, "tint":0.3999755851924192, raw_rgb: '909090' } }, + fgColor: { theme: 9, "tint":-0.249977111117893, rgb: 'F79646' }, + bgColor: { theme: 5, "tint":0.3999755851924192, rgb: 'C0504D' } }, { patternType: 'darkUp', - fgColor: { theme: 3, "tint":-0.249977111117893,raw_rgb: 'B3B3B3' }, - bgColor: { theme: 7, "tint":0.3999755851924192,raw_rgb: '606060' } }, + fgColor: { theme: 3, "tint":-0.249977111117893, rgb: 'EEECE1' }, + bgColor: { theme: 7, "tint":0.3999755851924192, rgb: '8064A2' } }, { patternType: 'darkGray', - fgColor: { theme: 3, raw_rgb: 'EEECE1' }, - bgColor: { theme: 1, raw_rgb: 'FFFFFF' } }, + fgColor: { theme: 3, rgb: 'EEECE1' }, + bgColor: { theme: 1, rgb: 'FFFFFF' } }, { patternType: 'lightGray', - fgColor: { theme: 6, "tint":0.3999755851924192, raw_rgb: 'C3C3C3' }, - bgColor: { theme: 2, "tint":-0.499984740745262, raw_rgb: '797979' } }, + fgColor: { theme: 6, "tint":0.3999755851924192, rgb: '9BBB59' }, + bgColor: { theme: 2, "tint":-0.499984740745262, rgb: '1F497D' } }, { patternType: 'lightDown', - fgColor: { theme: 4, raw_rgb: '3B3B3B' }, - bgColor: { theme: 7, raw_rgb: '606060' } }, + fgColor: { theme: 4, rgb: '4F81BD' }, + bgColor: { theme: 7, rgb: '8064A2' } }, { patternType: 'lightGrid', - fgColor: { theme: 6, "tint":-0.249977111117893, raw_rgb: '747474' }, - bgColor: { theme: 9, "tint":-0.249977111117893, raw_rgb: 'B9B9B9' } }, + fgColor: { theme: 6, "tint":-0.249977111117893, rgb: '9BBB59' }, + bgColor: { theme: 9, "tint":-0.249977111117893, rgb: 'F79646' } }, { patternType: 'lightGrid', - fgColor: { theme: 4, raw_rgb: '4F81BD' }, - bgColor: { theme: 2, "tint":-0.749992370372631, raw_rgb: '1F497D' } }, + fgColor: { theme: 4, rgb: '4F81BD' }, + bgColor: { theme: 2, "tint":-0.749992370372631, rgb: '1F497D' } }, { patternType: 'lightVertical', - fgColor: { theme: 3, "tint":0.3999755851924192, raw_rgb: 'F5F5F5' }, - bgColor: { theme: 7, "tint":0.3999755851924192, raw_rgb: 'B3B3B3' } } + fgColor: { theme: 3, "tint":0.3999755851924192, rgb: 'EEECE1' }, + bgColor: { theme: 7, "tint":0.3999755851924192, rgb: '8064A2' } } ]; ranges.forEach(function(rng) { it('XLS | ' + rng,function(){cmparr(rn2(rng).map(function(x){ return wsxls[x].s; }));}); @@ -809,8 +811,8 @@ describe('parse features', function() { var stylesxlsx = ranges.map(function(r) { return rn2(r)[0]; }).map(function(r) { return wsxlsx[r].s; }); for(var i = 0; i != exp.length; ++i) { var props = [ - "fgColor.theme","fgColor.raw_rgb", - "bgColor.theme","bgColor.raw_rgb", + "fgColor.theme","fgColor.rgb", + "bgColor.theme","bgColor.rgb", "patternType" ]; diff --git a/xlsx.js b/xlsx.js index 556143d..3bcd52b 100644 --- a/xlsx.js +++ b/xlsx.js @@ -4671,7 +4671,8 @@ function parse_fills(t, opts) { if (y.theme && themes.themeElements && themes.themeElements.clrScheme) { - fill.bgColor.raw_rgb = rgb_tint(themes.themeElements.clrScheme[fill.bgColor.theme].rgb, fill.fgColor.tint || 0); + fill.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[fill.bgColor.theme].rgb, 0) ; //fill.fgColor.tint || 0); + if (opts.WTF) fill.bgColor.raw_rgb = fill.bgColor.rgb; } /* Excel uses ARGB strings */ if (y.rgb) fill.bgColor.rgb = y.rgb;//.substring(y.rgb.length - 6); @@ -4687,7 +4688,8 @@ function parse_fills(t, opts) { if (y.tint) fill.fgColor.tint = parseFloat(y.tint); if (y.theme && themes.themeElements && themes.themeElements.clrScheme) { - fill.fgColor.raw_rgb = rgb_tint(themes.themeElements.clrScheme[fill.fgColor.theme].rgb, fill.fgColor.tint || 0); + fill.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[fill.fgColor.theme].rgb, 0); //fill.fgColor.tint || 0); + if (opts.WTF) fill.fgColor.raw_rgb = fill.fgColor.rgb; } /* Excel uses ARGB strings */ @@ -4770,7 +4772,7 @@ function parse_fonts(t, opts) { if (y.theme) font.color.theme = y.theme; if (y.tint) font.color.tint = y.tint; if (y.theme && themes.themeElements && themes.themeElements.clrScheme) { - font.color.raw_rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0); + font.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0); } if (y.rgb) font.color.rgb = y.rgb; break; @@ -4838,7 +4840,7 @@ function parse_borders(t, opts) { sub_border.color = {}; if (y.theme) sub_border.color.theme = y.theme; if (y.theme && themes.themeElements && themes.themeElements.clrScheme) { - sub_border.color.raw_rgb = rgb_tint(themes.themeElements.clrScheme[sub_border.color.theme].rgb, sub_border.color.tint || 0); + sub_border.color.rgb = rgb_tint(themes.themeElements.clrScheme[sub_border.color.theme].rgb, sub_border.color.tint || 0); } if (y.tint) sub_border.color.tint = y.tint;