[]
        
(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 接口的 setHorizontalAlignmentsetVerticalAlignmentsetAddIndentsetReadingOrder。setHorizontalAlignment 方法设置单元格的水平对齐方式,而 setVerticalAlignment 方法设置单元格的垂直对齐方式。此外,当水平或垂直对齐方式被设置为分散对齐时,setAddIndent 方法设置文本的缩进。setReadingOrder 方法设置单元格内或单元格范围内的内容读取方向。

下表列出了 setHorizontalAlignment 和 setVerticalAlignment 方法中的对齐选项:

Method

Option

Example

setHorizontalAlignment

Center

image

CenterContinuous

image

Distributed

image

Fill

image

General

image

Justify

image

Left

image

Right

image

setVerticalAlignment

Bottom

image

Center

image

Distributed

image

Justify

image

Top

image

参考以下示例代码来在您的工作表中设置对齐方式:

// 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);

type=warning

注意:

  • 增加缩进(AddIndent)在东亚语言中会生效,因为不同的语言有不同的单词拆分策略,因此效果会有所不同。

  • 分散布局(Distributed layout)仅在文本方向设置为 0、90、-90 和 255 时生效。任何小于 0 的值将以“右”对齐方式并带有自动换行显示,而任何大于 0 的值将以“左”对齐方式并带有自动换行显示。

设置保护

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

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

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