设置单元格样式

  1. func (f *File) SetCellStyle(sheet, hcell, vcell string, styleID int) error

根据给定的工作表名、单元格坐标区域和样式索引设置单元格的值。样式索引可以通过 NewStyle 函数获取。注意,在同一个坐标区域内的 diagonalDowndiagonalUp 需要保持颜色一致。

  • 例1,为名为 Sheet1 的工作表 D7 单元格设置边框样式:
  1. style, err := f.NewStyle(`{
  2. "border": [
  3. {
  4. "type": "left",
  5. "color": "0000FF",
  6. "style": 3
  7. },
  8. {
  9. "type": "top",
  10. "color": "00FF00",
  11. "style": 4
  12. },
  13. {
  14. "type": "bottom",
  15. "color": "FFFF00",
  16. "style": 5
  17. },
  18. {
  19. "type": "right",
  20. "color": "FF0000",
  21. "style": 6
  22. },
  23. {
  24. "type": "diagonalDown",
  25. "color": "A020F0",
  26. "style": 7
  27. },
  28. {
  29. "type": "diagonalUp",
  30. "color": "A020F0",
  31. "style": 8
  32. }]
  33. }`)
  34. if err != nil {
  35. fmt.Println(err)
  36. }
  37. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置边框样式

单元格 D7 的四个边框被设置了不同的样式和颜色,这与调用 NewStyle 函数时的参数有关,需要设置不同的样式可参考该章节的文档。

  • 例2,为名为 Sheet1 的工作表 D7 单元格设置渐变样式:
  1. style, err := f.NewStyle(`{"fill":{"type":"gradient","color":["#FFFFFF","#E0EBF5"],"shading":1}}`)
  2. if err != nil {
  3. fmt.Println(err)
  4. }
  5. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置渐变样式

单元格 D7 被设置了渐变效果的颜色填充,渐变填充效果与调用 NewStyle 函数时的参数有关,需要设置不同的样式可参考该章节的文档。

  • 例3,为名为 Sheet1 的工作表 D7 单元格设置纯色填充:
  1. style, err := f.NewStyle(`{"fill":{"type":"pattern","color":["#E0EBF5"],"pattern":1}}`)
  2. if err != nil {
  3. fmt.Println(err)
  4. }
  5. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置纯色填充

单元格 D7 被设置了纯色填充。

  • 例4,为名为 Sheet1 的工作表 D7 单元格设置字符间距与旋转角度:
  1. f.SetCellValue("Sheet1", "D7", "样式")
  2. style, err := f.NewStyle(`{
  3. "alignment":
  4. {
  5. "horizontal": "center",
  6. "ident": 1,
  7. "justify_last_line": true,
  8. "reading_order": 0,
  9. "relative_indent": 1,
  10. "shrink_to_fit": true,
  11. "text_rotation": 45,
  12. "vertical": "",
  13. "wrap_text": true
  14. }
  15. }`)
  16. if err != nil {
  17. fmt.Println(err)
  18. }
  19. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

设置字符间距与旋转角度

  • 例5,Excel 中的日期和时间用实数表示,例如 2017/7/4 12:00:00 PM 可以用数字 42920.5 来表示。为名为 Sheet1 的工作表 D7 单元格设置时间格式:
  1. f.SetCellValue("Sheet1", "D7", 42920.5)
  2. f.SetColWidth("Sheet1", "D", "D", 13)
  3. style, err := f.NewStyle(`{"number_format": 22}`)
  4. if err != nil {
  5. fmt.Println(err)
  6. }
  7. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置时间格式

单元格 D7 被设置了时间格式。注意,当应用了时间格式的单元格宽度过窄无法完整展示时会显示为 ####,可以拖拽调整列宽或者通过调用 SetColWidth 函数设置列宽到合适的大小使其正常显示。

  • 例6,为名为 Sheet1 的工作表 D7 单元格设置字体、字号、颜色和倾斜样式:
  1. f.SetCellValue("Sheet1", "D7", "Excel")
  2. style, err := f.NewStyle(`{
  3. "font":
  4. {
  5. "bold": true,
  6. "italic": true,
  7. "family": "Times New Roman",
  8. "size": 36,
  9. "color": "#777777"
  10. }
  11. }`)
  12. if err != nil {
  13. fmt.Println(err)
  14. }
  15. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置字体、字号、颜色和倾斜样式

  • 例7,锁定并隐藏名为 Sheet1 的工作表 D7 单元格:
  1. style, err := f.NewStyle(`{"protection":{"hidden":true, "locked":true}}`)
  2. if err != nil {
  3. fmt.Println(err)
  4. }
  5. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

要锁定单元格或隐藏公式,请保护工作表。在“审阅”选项卡上,单击“保护工作表”。