123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package xlsx
- // StreamStyle has style and formatting information.
- // Used to store a style for streaming
- type StreamStyle struct {
- xNumFmtId int
- style *Style
- }
- const (
- GeneralFormat = 0
- IntegerFormat = 1
- DecimalFormat = 2
- DateFormat_dd_mm_yy = 14
- DateTimeFormat_d_m_yy_h_mm = 22
- )
- var (
- StreamStyleFromColumn StreamStyle
- StreamStyleDefaultString StreamStyle
- StreamStyleBoldString StreamStyle
- StreamStyleItalicString StreamStyle
- StreamStyleUnderlinedString StreamStyle
- StreamStyleDefaultInteger StreamStyle
- StreamStyleBoldInteger StreamStyle
- StreamStyleItalicInteger StreamStyle
- StreamStyleUnderlinedInteger StreamStyle
- StreamStyleDefaultDate StreamStyle
- StreamStyleDefaultDecimal StreamStyle
- )
- var (
- FontBold *Font
- FontItalic *Font
- FontUnderlined *Font
- )
- var (
- FillGreen *Fill
- FillRed *Fill
- FillWhite *Fill
- )
- func init() {
- // Init Fonts
- FontBold = DefaultFont()
- FontBold.Bold = true
- FontItalic = DefaultFont()
- FontItalic.Italic = true
- FontUnderlined = DefaultFont()
- FontUnderlined.Underline = true
- // Init Fills
- FillGreen = NewFill(Solid_Cell_Fill, RGB_Light_Green, RGB_White)
- FillRed = NewFill(Solid_Cell_Fill, RGB_Light_Red, RGB_White)
- FillWhite = DefaultFill()
- // Init default string styles
- StreamStyleDefaultString = MakeStringStyle(DefaultFont(), DefaultFill(), DefaultAlignment(), DefaultBorder())
- StreamStyleBoldString = MakeStringStyle(FontBold, DefaultFill(), DefaultAlignment(), DefaultBorder())
- StreamStyleItalicString = MakeStringStyle(FontItalic, DefaultFill(), DefaultAlignment(), DefaultBorder())
- StreamStyleUnderlinedString = MakeStringStyle(FontUnderlined, DefaultFill(), DefaultAlignment(), DefaultBorder())
- // Init default Integer styles
- StreamStyleDefaultInteger = MakeIntegerStyle(DefaultFont(), DefaultFill(), DefaultAlignment(), DefaultBorder())
- StreamStyleBoldInteger = MakeIntegerStyle(FontBold, DefaultFill(), DefaultAlignment(), DefaultBorder())
- StreamStyleItalicInteger = MakeIntegerStyle(FontItalic, DefaultFill(), DefaultAlignment(), DefaultBorder())
- StreamStyleUnderlinedInteger = MakeIntegerStyle(FontUnderlined, DefaultFill(), DefaultAlignment(), DefaultBorder())
- StreamStyleDefaultDate = MakeDateStyle(DefaultFont(), DefaultFill(), DefaultAlignment(), DefaultBorder())
- StreamStyleDefaultDecimal = MakeDecimalStyle(DefaultFont(), DefaultFill(), DefaultAlignment(), DefaultBorder())
- DefaultStringCellMetadata = CellMetadata{CellTypeString, StreamStyleDefaultString}
- DefaultNumericCellMetadata = CellMetadata{CellTypeNumeric, StreamStyleDefaultString}
- DefaultDecimalCellMetadata = CellMetadata{CellTypeNumeric, StreamStyleDefaultDecimal}
- DefaultIntegerCellMetadata = CellMetadata{CellTypeNumeric, StreamStyleDefaultInteger}
- DefaultDateCellMetadata = CellMetadata{CellTypeDate, StreamStyleDefaultDate}
- }
- // MakeStyle creates a new StreamStyle and add it to the styles that will be streamed.
- func MakeStyle(numFormatId int, font *Font, fill *Fill, alignment *Alignment, border *Border) StreamStyle {
- newStyle := NewStyle()
- newStyle.Font = *font
- newStyle.Fill = *fill
- newStyle.Alignment = *alignment
- newStyle.Border = *border
- newStyle.ApplyFont = true
- newStyle.ApplyFill = true
- newStyle.ApplyAlignment = true
- newStyle.ApplyBorder = true
- newStreamStyle := StreamStyle{
- xNumFmtId: numFormatId,
- style: newStyle,
- }
- return newStreamStyle
- }
- // MakeStringStyle creates a new style that can be used on cells with string data.
- // If used on other data the formatting might be wrong.
- func MakeStringStyle(font *Font, fill *Fill, alignment *Alignment, border *Border) StreamStyle {
- return MakeStyle(GeneralFormat, font, fill, alignment, border)
- }
- // MakeIntegerStyle creates a new style that can be used on cells with integer data.
- // If used on other data the formatting might be wrong.
- func MakeIntegerStyle(font *Font, fill *Fill, alignment *Alignment, border *Border) StreamStyle {
- return MakeStyle(IntegerFormat, font, fill, alignment, border)
- }
- // MakeDecimalStyle creates a new style that can be used on cells with decimal numeric data.
- // If used on other data the formatting might be wrong.
- func MakeDecimalStyle(font *Font, fill *Fill, alignment *Alignment, border *Border) StreamStyle {
- return MakeStyle(DecimalFormat, font, fill, alignment, border)
- }
- // MakeDateStyle creates a new style that can be used on cells with Date data.
- // The formatting used is: dd_mm_yy
- // If used on other data the formatting might be wrong.
- func MakeDateStyle(font *Font, fill *Fill, alignment *Alignment, border *Border) StreamStyle {
- return MakeStyle(DateFormat_dd_mm_yy, font, fill, alignment, border)
- }
|