stream_style.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package xlsx
  2. // StreamStyle has style and formatting information.
  3. // Used to store a style for streaming
  4. type StreamStyle struct {
  5. xNumFmtId int
  6. style *Style
  7. }
  8. var DefaultStringStyle StreamStyle
  9. var DefaultStringBoldStyle StreamStyle
  10. var DefaultStringItalicStyle StreamStyle
  11. var DefaultStringUnderlinedStyle StreamStyle
  12. var DefaultNumericStyle StreamStyle
  13. var DefaultNumericBoldStyle StreamStyle
  14. var DefaultNumericItalicStyle StreamStyle
  15. var DefaultNumericUnderlinedStyle StreamStyle
  16. var DefaultStyles []StreamStyle
  17. func init(){
  18. // default string styles
  19. DefaultStringStyle = StreamStyle{
  20. xNumFmtId: 0,
  21. style: NewStyle(),
  22. }
  23. DefaultStringBoldStyle = StreamStyle{
  24. xNumFmtId: 0,
  25. style: NewStyle(),
  26. }
  27. DefaultStringBoldStyle.style.Font.Bold = true
  28. DefaultStringItalicStyle = StreamStyle{
  29. xNumFmtId: 0,
  30. style: NewStyle(),
  31. }
  32. DefaultStringItalicStyle.style.Font.Italic = true
  33. DefaultStringUnderlinedStyle = StreamStyle{
  34. xNumFmtId: 0,
  35. style: NewStyle(),
  36. }
  37. DefaultStringUnderlinedStyle.style.Font.Underline = true
  38. DefaultStyles = append(DefaultStyles, DefaultStringStyle)
  39. DefaultStyles = append(DefaultStyles, DefaultStringBoldStyle)
  40. DefaultStyles = append(DefaultStyles, DefaultStringItalicStyle)
  41. DefaultStyles = append(DefaultStyles, DefaultStringUnderlinedStyle)
  42. // default string styles
  43. DefaultNumericStyle = StreamStyle{
  44. xNumFmtId: 1,
  45. style: NewStyle(),
  46. }
  47. DefaultNumericBoldStyle = StreamStyle{
  48. xNumFmtId: 1,
  49. style: NewStyle(),
  50. }
  51. DefaultNumericBoldStyle.style.Font.Bold = true
  52. DefaultNumericItalicStyle = StreamStyle{
  53. xNumFmtId: 1,
  54. style: NewStyle(),
  55. }
  56. DefaultNumericItalicStyle.style.Font.Italic = true
  57. DefaultNumericUnderlinedStyle = StreamStyle{
  58. xNumFmtId: 1,
  59. style: NewStyle(),
  60. }
  61. DefaultNumericUnderlinedStyle.style.Font.Underline = true
  62. DefaultStyles = append(DefaultStyles, DefaultNumericStyle)
  63. DefaultStyles = append(DefaultStyles, DefaultNumericBoldStyle)
  64. DefaultStyles = append(DefaultStyles, DefaultNumericItalicStyle)
  65. DefaultStyles = append(DefaultStyles, DefaultNumericUnderlinedStyle)
  66. }
  67. // MakeStyle creates a new StreamStyle and add it to the styles that will be streamed
  68. // This function returns a reference to the created StreamStyle
  69. func MakeStyle(formatStyleId int, font Font, fill Fill, alignment Alignment, border Border) StreamStyle {
  70. newStyle := NewStyle()
  71. newStyle.Font = font
  72. newStyle.Fill = fill
  73. newStyle.Alignment = alignment
  74. newStyle.Border = border
  75. newStyle.ApplyFont = true
  76. newStyle.ApplyFill = true
  77. newStyle.ApplyAlignment = true
  78. newStyle.ApplyBorder = true
  79. newStreamStyle := StreamStyle{
  80. xNumFmtId: formatStyleId,
  81. style: newStyle,
  82. }
  83. DefaultStyles = append(DefaultStyles, newStreamStyle)
  84. return newStreamStyle
  85. }