单元格

    设置布尔型值

    根据给定的工作表名和单元格坐标设置布尔型单元格的值。

    设置默认字符型值

    1. func (f *File) SetCellDefault(sheet, axis, value string)

    根据给定的工作表名和单元格坐标设置字符型单元格的值,字符将不会进行特殊字符过滤。

    设置实数

    1. func (f *File) SetCellInt(sheet, axis string, value int)

    根据给定的工作表名和单元格坐标设置实数单元格的值。

    设置字符型值

    1. func (f *File) SetCellStr(sheet, axis, value string)

    根据给定的工作表名和单元格坐标设置字符型单元格的值,字符将会进行特殊字符过滤,并且字符串的累计长度应不超过 32767,多余的字符将会被忽略。

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

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

    • 例1,为名为 Sheet1 的工作表 D7 单元格设置边框样式:
    1. style, err := xlsx.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}]}`)
    2. if err != nil {
    3. fmt.Println(err)
    4. }
    5. xlsx.SetCellStyle("Sheet1", "D7", "D7", style)

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

    1. style, err := xlsx.NewStyle(`{"fill":{"type":"gradient","color":["#FFFFFF","#E0EBF5"],"shading":1}}`)
    2. if err != nil {
    3. fmt.Println(err)
    4. }
    5. xlsx.SetCellStyle("Sheet1", "D7", "D7", style)

    "为单元格设置渐变样式"

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

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

    • 例4,为名为 的工作表 D7 单元格设置字符间距与旋转角度:
    1. xlsx.SetCellValue("Sheet1", "D7", "样式")
    2. style, err := xlsx.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}}`)
    3. if err != nil {
    4. fmt.Println(err)
    5. }
    6. xlsx.SetCellStyle("Sheet1", "D7", "D7", style)

    "设置字符间距与旋转角度"

    • 例5,Excel 中的日期和时间用实数表示,例如 2017/7/4 12:00:00 PM 可以用数字 42920.5 来表示。为名为 Sheet1 的工作表 D7 单元格设置时间格式:

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

    • 例6,为名为 Sheet1 的工作表 D7 单元格设置字体、字号、颜色和倾斜样式:
    1. xlsx.SetCellValue("Sheet1", "D7", "Excel")
    2. style, err := xlsx.NewStyle(`{"font":{"bold":true,"italic":true,"family":"Berlin Sans FB Demi","size":36,"color":"#777777"}}`)
    3. if err != nil {
    4. fmt.Println(err)
    5. }
    6. xlsx.SetCellStyle("Sheet1", "D7", "D7", style)

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

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

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

    设置超链接

    1. func (f *File) SetCellHyperLink(sheet, axis, link, linkType string)

    根据给定的工作表、单元格坐标、链接资源和资源类型设置单元格的超链接。资源类型分为外部链接地址 External 和工作簿内部位置链接 Location 两种。

    • 例1,为名为 Sheet1 的工作表 A3 单元格添加外部链接:
    1. // 为单元格设置字体和下划线样式
    2. style, _ := xlsx.NewStyle(`{"font":{"color":"#1265BE","underline":"single"}}`)
    3. xlsx.SetCellStyle("Sheet1", "A3", "A3", style)
    • 例2,为名为 Sheet1 的工作表 A3 单元格添加内部位置链接:
    1. xlsx.SetCellHyperLink("Sheet1", "A3", "Sheet1!A40", "Location")

    获取单元格的值

    1. func (f *File) GetCellValue(sheet, axis string) string

    根据给定的工作表和单元格坐标获取单元格的值,返回值将转换为 string 类型。如果可以将单元格格式应用于单元格的值,将返回应用后的值,否则将返回原始值。

    获取全部单元格的值

    1. func (f *File) GetRows(sheet string) [][]string

    根据给定的工作表名(大小写敏感)获取该工作表上全部单元格的值,以二维数组形式返回,其中单元格的值将转换为 string 类型。如果可以将单元格格式应用于单元格的值,将使用应用后的值,否则将使用原始值。

    例如,获取并遍历输出名为 Sheet1 的工作表上的所有单元格的值:

    1. for _, row := range xlsx.GetRows("Sheet1") {
    2. for _, colCell := range row {
    3. fmt.Print(colCell, "\t")
    4. }
    5. fmt.Println()
    6. }

    获取超链接

    1. func (f *File) GetCellHyperLink(sheet, axis string) (bool, string)

    根据给定的工作表名(大小写敏感)和单元格坐标获取单元格超链接,如果该单元格存在超链接,将返回 true 和链接地址,否则将返回 false 和空的链接地址。

    1. func (f *File) GetCellStyle(sheet, axis string) int

    根据给定的工作表名(大小写敏感)和单元格坐标获取单元格样式索引,获取到的索引可以在复制单元格样式时,作为调用 SetCellValue 函数的参数使用。

    合并单元格

    1. func (f *File) MergeCell(sheet, hcell, vcell string)

    根据给定的工作表名(大小写敏感)和单元格坐标区域合并单元格。例如,合并名为 Sheet1 的工作表上 D3:E9 区域内的单元格:

    1. xlsx.MergeCell("Sheet1", "D3", "E9")

    如果给定的单元格坐标区域与已有的其他合并单元格相重叠,已有的合并单元格将会被删除。

    获取合并单元格

    根据给定的工作表名(大小写敏感)获取全部合并单元格的坐标区域和值。

    1. func (f *File) GetMergeCells(sheet string) []MergeCell

    添加批注

    1. func (f *File) AddComment(sheet, cell, format string) error

    根据给定的工作表名称、单元格坐标和样式参数(作者与文本信息)添加批注。作者信息最大长度为 255 个字符,最大文本内容长度为 32512 个字符,超出该范围的字符将会被忽略。例如,为 Sheet1!$A$3 单元格添加批注:

    1. xlsx.AddComment("Sheet1", "A3", `{"author":"Excelize: ","text":"This is a comment."}`)

    获取批注

    1. func (f *File) GetComments() (comments map[string][]Comment)

    通过该方法可以获取全部工作表中的批注。

    1. func (f *File) SetCellFormula(sheet, axis, formula string)

    根据给定的工作表名(大小写敏感)和单元格坐设置取该单元格上的公式。公式的结果会在工作表被 Office Excel 应用程序打开时计算,Excelize 目前不提供公式计算引擎,所以无法计算公式结果。

    获取公式

      根据给定的工作表名(大小写敏感)和单元格坐标获取该单元格上的公式。