设置单元格样式
func (f *File) SetCellStyle(sheet, hcell, vcell string, styleID int) error
根据给定的工作表名、单元格坐标区域和样式索引设置单元格的值。样式索引可以通过 NewStyle
函数获取。注意,在同一个坐标区域内的 diagonalDown
和 diagonalUp
需要保持颜色一致。
- 例1,为名为
Sheet1
的工作表D7
单元格设置边框样式:
style, err := f.NewStyle(`{
"border": [
{
"type": "left",
"color": "0000FF",
"style": 3
},
{
"type": "top",
"color": "00FF00",
"style": 4
},
{
"type": "bottom",
"color": "FFFF00",
"style": 5
},
{
"type": "right",
"color": "FF0000",
"style": 6
},
{
"type": "diagonalDown",
"color": "A020F0",
"style": 7
},
{
"type": "diagonalUp",
"color": "A020F0",
"style": 8
}]
}`)
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
单元格 D7
的四个边框被设置了不同的样式和颜色,这与调用 NewStyle
函数时的参数有关,需要设置不同的样式可参考该章节的文档。
- 例2,为名为
Sheet1
的工作表D7
单元格设置渐变样式:
style, err := f.NewStyle(`{"fill":{"type":"gradient","color":["#FFFFFF","#E0EBF5"],"shading":1}}`)
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
单元格 D7
被设置了渐变效果的颜色填充,渐变填充效果与调用 NewStyle
函数时的参数有关,需要设置不同的样式可参考该章节的文档。
- 例3,为名为
Sheet1
的工作表D7
单元格设置纯色填充:
style, err := f.NewStyle(`{"fill":{"type":"pattern","color":["#E0EBF5"],"pattern":1}}`)
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
单元格 D7
被设置了纯色填充。
- 例4,为名为
Sheet1
的工作表D7
单元格设置字符间距与旋转角度:
f.SetCellValue("Sheet1", "D7", "样式")
style, err := f.NewStyle(`{
"alignment":
{
"horizontal": "center",
"ident": 1,
"justify_last_line": true,
"reading_order": 0,
"relative_indent": 1,
"shrink_to_fit": true,
"text_rotation": 45,
"vertical": "",
"wrap_text": true
}
}`)
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
- 例5,Excel 中的日期和时间用实数表示,例如
2017/7/4 12:00:00 PM
可以用数字42920.5
来表示。为名为Sheet1
的工作表D7
单元格设置时间格式:
f.SetCellValue("Sheet1", "D7", 42920.5)
f.SetColWidth("Sheet1", "D", "D", 13)
style, err := f.NewStyle(`{"number_format": 22}`)
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
单元格 D7
被设置了时间格式。注意,当应用了时间格式的单元格宽度过窄无法完整展示时会显示为 ####
,可以拖拽调整列宽或者通过调用 SetColWidth
函数设置列宽到合适的大小使其正常显示。
- 例6,为名为
Sheet1
的工作表D7
单元格设置字体、字号、颜色和倾斜样式:
f.SetCellValue("Sheet1", "D7", "Excel")
style, err := f.NewStyle(`{
"font":
{
"bold": true,
"italic": true,
"family": "Times New Roman",
"size": 36,
"color": "#777777"
}
}`)
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
- 例7,锁定并隐藏名为
Sheet1
的工作表D7
单元格:
style, err := f.NewStyle(`{"protection":{"hidden":true, "locked":true}}`)
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
要锁定单元格或隐藏公式,请保护工作表。在“审阅”选项卡上,单击“保护工作表”。