在做java 動態增刪圖表中,如果將原來的標簽數據刪除了,在新增標簽數據,發現顏色沒設置,然后找不到對應的方法。
將word模板另外存word.xml格式,你會發現word模板其實是一大堆標簽,你操作的是標簽。然后打開排查,發現顏色標簽如下:
“accent1”代表的就是藍色
然后打開代碼:
//設置顏色 CTSchemeColor ctSchemeColor = ctBarSer.addNewSpPr().addNewSolidFill().addNewSchemeClr(); ctSchemeColor.setVal(STSchemeColorVal.Enum.forString("bg2"));
一層層標簽對應的添加,然后點進去STSchemeColorVal 發現枚舉類就這些
STSchemeColorVal.Enum BG_1 = STSchemeColorVal.Enum.forString("bg1"); //白色 STSchemeColorVal.Enum TX_1 = STSchemeColorVal.Enum.forString("tx1"); //黑色 STSchemeColorVal.Enum BG_2 = STSchemeColorVal.Enum.forString("bg2"); //灰色 25% STSchemeColorVal.Enum TX_2 = STSchemeColorVal.Enum.forString("tx2"); //培安紫 STSchemeColorVal.Enum ACCENT_1 = STSchemeColorVal.Enum.forString("accent1"); //矢車菊藍 STSchemeColorVal.Enum ACCENT_2 = STSchemeColorVal.Enum.forString("accent2"); //巧克力黃 STSchemeColorVal.Enum ACCENT_3 = STSchemeColorVal.Enum.forString("accent3"); //灰色 50% STSchemeColorVal.Enum ACCENT_4 = STSchemeColorVal.Enum.forString("accent4"); //橙色 STSchemeColorVal.Enum ACCENT_5 = STSchemeColorVal.Enum.forString("accent5"); //鋼藍 STSchemeColorVal.Enum ACCENT_6 = STSchemeColorVal.Enum.forString("accent6"); //淺綠 STSchemeColorVal.Enum HLINK = STSchemeColorVal.Enum.forString("hlink"); //深藍 STSchemeColorVal.Enum FOL_HLINK = STSchemeColorVal.Enum.forString("folHlink"); //紫色 STSchemeColorVal.Enum PH_CLR = STSchemeColorVal.Enum.forString("phClr"); //白色 STSchemeColorVal.Enum DK_1 = STSchemeColorVal.Enum.forString("dk1"); //黑色 STSchemeColorVal.Enum LT_1 = STSchemeColorVal.Enum.forString("lt1"); //白色 STSchemeColorVal.Enum DK_2 = STSchemeColorVal.Enum.forString("dk2"); //灰色 25% STSchemeColorVal.Enum LT_2 = STSchemeColorVal.Enum.forString("lt2"); //培安紫
意味着就只有這些顏色。具體還可不可以通過實現來構造新的顏色,目前還沒發現,有再更新。
上面有些顏色是重復的,可能着色的目的不一樣吧,有些是對背景色,有些是對文本着色等等。