private static void setThemeStyles( IWorkbook workbook, IStyleSheet styleSheet, ISheet sheet, IStyle theme, String... sheetStyleNames) { IStyle sheetTheme = theme.getDefaultStyle(Styles.FAMILY_MAP); if (sheetTheme == null) return; IStyle sheetStyle = styleSheet.findStyle(sheet.getStyleId()); if (sheetStyle != null) { sheetStyle = Core.getWorkbookBuilder().createWorkbook().getStyleSheet().importStyle(sheetStyle); } String value = null; for (String styleName : sheetStyleNames) { value = sheetTheme.getProperty(styleName); if (value != null) { if (sheetStyle == null) sheetStyle = Core.getWorkbookBuilder() .createWorkbook() .getStyleSheet() .createStyle(sheet.getStyleType()); sheetStyle.setProperty(styleName, value); } else if (sheetStyle != null) { sheetStyle.setProperty(styleName, value); } } if (sheetStyle != null) { sheetStyle = workbook.getStyleSheet().importStyle(sheetStyle); if (sheetStyle != null) { sheet.setStyleId(sheetStyle.getId()); } } }
public static void setTheme(ISheet sheet, IStyle theme) { if (sheet == null) return; if (theme == null || theme.isEmpty()) { sheet.setThemeId(null); } else { IWorkbook workbook = sheet.getOwnedWorkbook(); IStyleSheet styleSheet = workbook.getStyleSheet(); theme = styleSheet.importStyle(theme); if (theme == null || theme.isEmpty()) { sheet.setThemeId(null); } else { sheet.setThemeId(theme.getId()); setThemeStyles( workbook, styleSheet, sheet, theme, Styles.MultiLineColors, Styles.LineTapered); } } }