[]
        
(Showing Draft Content)

设置工作表样式

GcExcel Java通过执行诸如为单元格设置不同的填充样式,自定义单元格边框以及为表单配置字体等操作,使用户能够将为工作表设置样式。

设置填充

您可以使用IRange界面的getInterior方法设置单元格的填充样式。单元内部可以是三种类型,即实体填充,图案填充和渐变填充。

实体填充

您可以通过设置IInterior接口的setPattern方法将单元格的填充样式指定为实体。

请参考以下示例代码来设置实体填充。

// Solid fill for B5 
worksheet.getRange("B5").getInterior().setPattern(Pattern.Solid);
worksheet.getRange("B5").getInterior().setColor(Color.FromArgb(255, 0, 255));

图案填充

您可以使用IInterior接口的Pattern方法给单元格设置图案。

图案填充包括前景色、背景色

您可以根据自己的喜好使用IInterior界面的方法设置背景色和前景色。

请参考以下示例代码来设置图案填充。

// Pattern fill for A1
worksheet.getRange("A1").getInterior().setPattern(Pattern.LightDown);
worksheet.getRange("A1").getInterior().setColor(Color.FromArgb(255, 0, 255));
worksheet.getRange("A1").getInterior().setPatternColorIndex(5);

渐变填充

您可以使用IInterior接口的getGradient方法设置渐变填充单元格。

渐变填充可以有两种类型-线性渐变填充和矩形渐变填充。

线性渐变填充

您可以使用ILinearGradient接口的方法设置线性渐变填充。

请参考以下示例代码来设置线性渐变填充。

// Gradient fill for A1
worksheet.getRange("A1").getInterior().setPattern(Pattern.LinearGradient);
((ILinearGradient) worksheet.getRange("A1").getInterior().getGradient()).getColorStops().get(0)
        .setColor(Color.FromArgb(255, 0, 0));
((ILinearGradient) worksheet.getRange("A1").getInterior().getGradient()).getColorStops().get(1)
        .setColor(Color.FromArgb(255, 255, 0));
((ILinearGradient) worksheet.getRange("A1").getInterior().getGradient()).setDegree(90);

矩形渐变填充

您还可以使用IRectangularGradient接口的方法设置矩形渐变填充。

请参考以下示例代码来设置矩形渐变填充。

// Rectangular gradient fill for A1
worksheet.getRange("A1").getInterior().setPattern(Pattern.RectangularGradient);
((IRectangularGradient) worksheet.getRange("A1").getInterior().getGradient()).getColorStops().get(0)
        .setColor(Color.FromArgb(255, 0, 0));
((IRectangularGradient) worksheet.getRange("A1").getInterior().getGradient()).getColorStops().get(1)
        .setColor(Color.FromArgb(0, 255, 0));

((IRectangularGradient) worksheet.getRange("A1").getInterior().getGradient()).setBottom(0.2);
((IRectangularGradient) worksheet.getRange("A1").getInterior().getGradient()).setRight(0.3);
((IRectangularGradient) worksheet.getRange("A1").getInterior().getGradient()).setTop(0.4);
((IRectangularGradient) worksheet.getRange("A1").getInterior().getGradient()).setLeft(0.5);

设置字体

您可以使用IRange界面的getFont方法来自定义工作表的字体

请参考以下示例代码以在工作表中设置字体样式。

// Set font
worksheet.getRange("A1").setValue("aaa");
worksheet.getRange("A1").getFont().setThemeColor(ThemeColor.Accent1);
worksheet.getRange("A1").getFont().setTintAndShade(-0.5);
worksheet.getRange("A1").getFont().setThemeFont(ThemeFont.Major);
worksheet.getRange("A1").getFont().setBold(true);
worksheet.getRange("A1").getFont().setSize(20);
worksheet.getRange("A1").getFont().setStrikethrough(true);

设置边框

您可以使用IRange接口的getBorders方法来自定义工作表的边框。

请参考以下示例代码,在工作表中设置边框。

// Set border
worksheet.getRange("A1:B5").getBorders().setLineStyle(BorderLineStyle.DashDot);
worksheet.getRange("A1:B5").getBorders().setThemeColor(ThemeColor.Accent1);
worksheet.getRange("A1:B5").getBorders().get(BordersIndex.EdgeRight).setLineStyle(BorderLineStyle.Double);
worksheet.getRange("A1:B5").getBorders().get(BordersIndex.EdgeRight).setThemeColor(ThemeColor.Accent2);
worksheet.getRange("A1:B5").getBorders().get(BordersIndex.DiagonalDown).setLineStyle(BorderLineStyle.Double);
worksheet.getRange("A1:B5").getBorders().get(BordersIndex.DiagonalDown).setThemeColor(ThemeColor.Accent5);

设置数值格式

您可以使用IRange界面的setNumberFormat方法在工作表中设置数字格式。

请参考以下示例代码以在工作表中设置数值格式。

// Set number format
worksheet.getRange("A1").setValue(12);
worksheet.getRange("A1").setNumberFormat("$#,##0.00");

设置对齐

您可以使用IRange接口的setHorizontalAlignment方法,setVerticalAlignment方法,setAddIndent方法和 setReadingOrder方法来自定义工作表的对齐方式。

请参考以下示例代码以在工作表中设置对齐方式。

// Set alignment
worksheet.getRange("A1").setHorizontalAlignment(HorizontalAlignment.Distributed);
worksheet.getRange("A1").setAddIndent(true);
worksheet.getRange("A1").setVerticalAlignment(VerticalAlignment.Top);
worksheet.getRange("A1").setReadingOrder(ReadingOrder.RightToLeft);

设置保护

您可以使用IRange界面的setFormulaHidden方法和setLocked方法为工作表设置保护。

请参考以下示例代码,为您的工作表设置保护。

// Set protection
worksheet.getRange("A1").setLocked(true);
worksheet.getRange("A1").setFormulaHidden(true);