[]
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。setHorizontalAlignment 方法设置单元格的水平对齐方式,而 setVerticalAlignment 方法设置单元格的垂直对齐方式。此外,当水平或垂直对齐方式被设置为分散对齐时,setAddIndent 方法设置文本的缩进。setReadingOrder 方法设置单元格内或单元格范围内的内容读取方向。
下表列出了 setHorizontalAlignment 和 setVerticalAlignment 方法中的对齐选项:
Method | Option | Example |
---|---|---|
setHorizontalAlignment | Center | |
CenterContinuous | ||
Distributed | ||
Fill | ||
General | ||
Justify | ||
Left | ||
Right | ||
setVerticalAlignment | Bottom | |
Center | ||
Distributed | ||
Justify | ||
Top |
参考以下示例代码来在您的工作表中设置对齐方式:
// 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);