目录
- 1. 安装excelize库
- 2. Excel工具代码
- 2.1 初始化Excel对象
- 2.2. 常用操作
- 2.2.1 设置窗格冻结
- 2.2.2 设置工作表名称
- 2.2.3 创建工作表
- 2.2.4 设置单元格值
- 2.2.5 设置单元格样式
- 2.2.6 合并单元格
- 2.2.7 设置行高和列宽
- 3.使用示例
- 4.完整代码
- 5.总结
在日常的开发中,我们经常需要对Excel进行各种各样的操作,比如生成Excel报表、对Excel数据进行处理等。在Golang中,有一个非常好用的库——excelize,它支持对Excel文件的创建、读取、修改等操作。
1. 安装excelize库
首先,我们需要安装excelize库。在终端中执行以下命令:
go get github.com/xuri/excelize/v2
2. Excel工具代码
2.1 初始化Excel对象
在使用excelize之前,我们需要初始化一个Excel对象。这个对象包含了Excel文件的信息,以及一些常用的样式。我们可以定义一个Excel
结构体,然后创建一个ExcelInit
函数来初始化这个结构体。
package utils
import (
"github.com/xuri/excelize/v2"
)
var DEFAULT_ROW_HEIGHT = float64(25)
var DEFAULT_COLUMN_WIDTH = float64(18)
// Excel对象结构体
type Excel struct {
File *excelize.File
TitleStyle int // 标题样式
HeadStyle int // 头样式
ContentStyle int // 主体样式
ContentStyle2 int // 主体样式, 带背景色
}
// 初始化一个Excel对象结构体
func ExcelInit() (e *Excel) {
e = &Excel{}
// excel构建
e.File = excelize.NewFile()
// 初始化样式
e.getTitleRowStyle()
e.getHeadRowStyle()
e.getDataRowStyle()
return e
}
2.2. 常用操作
2.2.1 设置窗格冻结
在Excel中,我们可以通过设置窗格冻结来固定某些行和列,使得它们在滚动时保持可见。在excelize中,我们可以使用SetPaneFreeze
方法来实现这个功能。
// 设置窗格冻结
func (e *Excel) SetPaneFreeze(sheet string, col int, row int) error {
cell, err := excelize.CoordinatesToCellName(col+1, row+1)
if err != nil {
return err
}
return e.File.SetPanes(sheet, &excelize.Panes{Freeze: true, Split: false, XSplit: col, YSplit: row, TopLeftCell: cell, ActivePane: "bottomLeft"})
}
2.2.2 设置工作表名称
我们可以使用SetSheetName
方法来设置工作表的名称。
// 设置工作表名称
func (e *Excel) SetSheetName(index int, sheetName string) error {
sheet := e.File.GetSheetName(index)
return e.File.SetSheetName(sheet, sheetName)
}
使用ChangeSheetName
修改工作表名称
func (e *Excel) ChangeSheetName(sheet string, newSheetName string) error {
index, err := e.File.GetSheetIndex(sheet)
if err != nil {
return err
}
if index >= 0 {
err = e.File.SetSheetName(sheet, newSheetName)
}
return err
}
2.2.3 创建工作表
使用CreateSheet
方法可以创建一个新的工作表。如果工作表已存在,则返回该工作表的索引;如果不存在,则创建新的工作表并返回其索引。
// 创建工作表
func (e *Excel) CreateSheet(sheet string) (int, error) {
index, err := e.File.GetSheetIndex(sheet)
if err != nil {
return index, err
}
if index < 0 {
index, err = e.File.NewSheet(sheet)
}
return index, err
}
2.2.4 设置单元格值
使用SetCellValue
方法可以在指定的工作表中设置某个单元格的值。
// 设置单元格值
func (e *Excel) SetCellValue(sheet string, col int, row int, value interface{}) error {
cell, err := excelize.CoordinatesToCellName(col, row)
if err != nil {
return err
}
return e.File.SetCellValue(sheet, cell, value)
}
2.2.5 设置单元格样式
使用SetCellStyle
方法可以为指定工作表中的单元格设置样式。
// 设置单元格样式
func (e *Excel) SetCellStyle(sheet string, col int, row int, styleID int) error {
cell, err := excelize.CoordinatesToCellName(col, row)
if err != nil {
return err
}
return e.File.SetCellStyle(sheet, cell, cell, styleID)
}
使用SetCellsStyle
方法可以为指定工作表范围内的单元格设置样式。
func (e *Excel) SetCellsStyle(sheet string, startCol int, startRow int, endCol int, endRow int, styleID int) error {
startCell, err := excelize.CoordinatesToCellName(startCol, startRow)
if err != nil {
return err
}
endCell, err := excelize.CoordinatesToCellName(endCol, endRow)
if err != nil {
return err
}
return e.File.SetCellStyle(sheet, startCell, endCell, styleID)
}
使用SetCellHeadStyle
设置单元格为头样式
func (e *Excel) SetCellHeadStyle(sheet string, col int, row int) error {
return e.SetCellStyle(sheet, col, row, e.HeadStyle)
}
使用SetCellsHeadStyle
设置范围单元格为头样式
func (e *Excel) SetCellsHeadStyle(sheet string, startCol int, startRow int, endCol int, endRow int) error {
return e.SetCellsStyle(sheet, startCol, startRow, endCol, endRow, e.HeadStyle)
}
使用SetCellTitleStyle
设置单元格为标题样式
func (e *Excel) SetCellTitleStyle(sheet string, col int, row int) error {
return e.SetCellStyle(sheet, col, row, e.TitleStyle)
}
使用SetCellsTitleStyle
设置范围单元格为标题样式
func (e *Excel) SetCellsTitleStyle(sheet string, startCol int, startRow int, endCol int, endRow int) error {
return e.SetCellsStyle(sheet, startCol, startRow, endCol, endRow, e.TitleStyle)
}
使用SetCellContentStyle
设置单元格为正文样式
func (e *Excel) SetCellContentStyle(sheet string, col int, row int) error {
return e.SetCellStyle(sheet, col, row, e.ContentStyle)
}
使用SetCellsContentStyle
设置范围单元格为正文样式
func (e *Excel) SetCellsContentStyle(sheet string, startCol int, startRow int, endCol int, endRow int) error {
return e.SetCellsStyle(sheet, startCol, startRow, endCol, endRow, e.ContentStyle)
}
2.2.6 合并单元格
使用MergeCells
方法可以在指定的工作表中合并一个矩形区域的单元格。
// 合并单元格
func (e *Excel) MergeCells(sheet string, startCol, startRow, endCol, endRow int) (err error) {
startCell, err := excelize.CoordinatesToCellName(startCol, startRow)
if err != nil {
return err
}
endCell, err := excelize.CoordinatesToCellName(endCol, endRow)
if err != nil {
return err
}
return e.File.MergeCell(sheet, startCell, endCell)
}
2.2.7 设置行高和列宽
使用SetRowHeight
设置行高
func (e *Excel) SetRowHeight(sheet string, row int, height float64) error {
return e.File.SetRowHeight(sheet, row, height)
}
使用SetRowsHeight
设置多行高度
func (e *Excel) SetRowsHeight(sheet string, startRow int, endRow int, height float64) (err error) {
for i := startRow; i <= endRow; i++ {
err = e.File.SetRowHeight(sheet, i, height)
if err != nil {
return
}
}
return
}
使用SetColWidth
设置列宽
func (e *Excel) SetColWidth(sheet string, col int, width float64) error {
cell, err := excelize.ColumnNumberToName(col)
if err != nil {
return err
}
return e.File.SetColWidth(sheet, cell, cell, width)
}
使用SetColsWidth
设置多列宽度
func (e *Excel) SetColsWidth(sheet string, startCol int, endCol int, width float64) (err error) {
startColName, err := excelize.ColumnNumberToName(startCol)
if err != nil {
return
}
endColName, err := excelize.ColumnNumberToName(endCol)
if err != nil {
return
}
return e.File.SetColWidth(sheet, startColName, endColName, width)
}
使用SetColDefaultWidth
设置列为默认宽度
func (e *Excel) SetColDefaultWidth(sheet string, col int) error {
return e.SetColWidth(sheet, col, DEFAULT_COLUMN_WIDTH)
}
使用SetColDefaultWidth
设置多列为默认宽度
func (e *Excel) SetColsDefaultWidth(sheet string, startcol, endcol int) error {
return e.SetColsWidth(sheet, startcol, endcol, DEFAULT_COLUMN_WIDTH)
}
使用SetRowDefaultHeight
设置行为默认高度
func (e *Excel) SetRowDefaultHeight(sheet string, row int) error {
return e.SetRowHeight(sheet, row, DEFAULT_ROW_HEIGHT)
}
使用SetRowsDefaultHeight
设置多行为默认高度
func (e *Excel) SetRowsDefaultHeight(sheet string, startRow, endRow int) (err error) {
return e.SetRowsHeight(sheet, startRow, endRow, DEFAULT_ROW_HEIGHT)
}
3.使用示例
package main
import (
"fmt"
"github.com/your_project_path/utils"
)
func main() {
// 初始化Excel对象
e := utils.ExcelInit()
// 创建一个新的工作表
sheetName := "Sheet1"
e.CreateSheet(sheetName)
// 修改工作表名称
e.ChangeSheetName(sheetName, "New Sheet Name")
// 设置单元格值
e.SetCellValue("New Sheet Name", 1, 1, "Hello World")
// 设置单元格样式
e.SetCellsTitleStyle("New Sheet Name", 1, 1, 5, 1)
// 合并单元格
e.MergeCells("New Sheet Name", 1, 1, 5, 1)
// 设置行高
e.SetRowDefaultHeight("New Sheet Name", 1)
// 设置列宽
e.SetColsDefaultWidth("New Sheet Name", 1, 5)
// 设置单元格样式
e.SetCellsTitleStyle("New Sheet Name", 1, 2, 5, 2)
// 设置单元格数值
for i := 0; i < 5; i++ {
e.SetCellValue("New Sheet Name", i+1, 2, i)
}
// 设置冻结首行
e.SetPaneFreeze("New Sheet Name", 0, 1)
// 保存文件
e.File.SaveAs("output.xlsx")
}
以上示例忽略error返回值,实际使用需要考虑error不为nil的情况。
输出结果:
4.完整代码
package utils
import (
"github.com/xuri/excelize/v2"
)
var DEFAULT_ROW_HEIGHT = float64(25)
var DEFAULT_COLUMN_WIDTH = float64(18)
// Excel对象结构体
type Excel struct {
File *excelize.File
TitleStyle int // 标题样式
HeadStyle int // 头样式
ContentStyle int // 主体样式
ContentStyle2 int // 主体样式, 带背景色
}
// 初始化一个Excel对象结构体
func ExcelInit() (e *Excel) {
e = &Excel{}
// excel构建
e.File = excelize.NewFile()
// 初始化样式
e.getTitleRowStyle()
e.getHeadRowStyle()
e.getDataRowStyle()
return e
}
// @title SetPaneFreeze 设置窗格冻结
// @description 在指定的工作表中设置窗格冻结,冻结窗格可以固定行和列,使得它们在滚动时保持可见。
// @param sheet string "工作表名称"
// @param col int "冻结窗格的列号(从0开始)"
// @param row int "冻结窗格的行号(从0开始)"
// @return error error "如果操作成功返回nil,否则返回错误信息"
func (e *Excel) SetPaneFreeze(sheet string, col int, row int) error {
cell, err := excelize.CoordinatesToCellName(col+1, row+1)
if err != nil {
return err
}
return e.File.SetPanes(sheet, &excelize.Panes{Freeze: true, Split: false, XSplit: col, YSplit: row, TopLeftCell: cell, ActivePane: "bottomLeft"})
}
// @title SetSheetName 设置工作表名称
// @description 设置指定索引的工作表名称。此方法首先获取指定索引的工作表名称,然后将其重命名为新的名称。
// @param index int "工作表的索引"
// @param sheetName string "工作表名称"
// @return error error "如果设置过程中发生错误,则返回错误信息"
func (e *Excel) SetSheetName(index int, sheetName string) error {
sheet := e.File.GetSheetName(index)
return e.File.SetSheetName(sheet, sheetName)
}
// @title ChangeSheetName 设置工作表名称
// @description 更改指定工作表的名称。
// @param sheet string "原始工作表名称"
// @param newSheetName string "新的工作表名称"
// @return error error "如果操作成功返回nil,否则返回错误信息"
func (e *Excel) ChangeSheetName(sheet string, newSheetName string) error {
index, err := e.File.GetSheetIndex(sheet)
if err != nil {
return err
}
if index >= 0 {
err = e.File.SetSheetName(sheet, newSheetName)
}
return err
}
// @title CreateSheet 创建工作表
// @description 该方法用于创建一个新的工作表。如果工作表已存在,则返回该工作表的索引;如果不存在,则创建新的工作表并返回其索引。
// @param sheet string "要创建的工作表名称"
// @return index int "创建或已存在的工作表的索引"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) CreateSheet(sheet string) (int, error) {
index, err := e.File.GetSheetIndex(sheet)
if err != nil {
return index, err
}
if index < 0 {
index, err = e.File.NewSheet(sheet)
}
return index, err
}
// @title SetCellValue 设置单元格值
// @description 该方法用于在指定的工作表中设置某个单元格的值。单元格的位置由列号和行号确定。
// @param sheet string "要设置值的工作表名称"
// @param col int "单元格的列号(从1开始计数)"
// @param row int "单元格的行号(从1开始计数)"
// @param value interface{} "要设置的单元格值,可以是字符串、数字、布尔值等"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetCellValue(sheet string, col int, row int, value interface{}) error {
cell, err := excelize.CoordinatesToCellName(col, row)
if err != nil {
return err
}
return e.File.SetCellValue(sheet, cell, value)
}
// @title SetCellStyle 设置单元格样式
// @description 为指定工作表中的单元格设置样式。
// @param sheet string "工作表名称"
// @param col int "单元格所在的列号"
// @param row int "单元格所在的行号"
// @param styleID int "要应用的样式ID"
// @return error error "如果操作成功返回nil,否则返回错误信息"
func (e *Excel) SetCellStyle(sheet string, col int, row int, styleID int) error {
cell, err := excelize.CoordinatesToCellName(col, row)
if err != nil {
return err
}
return e.File.SetCellStyle(sheet, cell, cell, styleID)
}
// @title SetCellsStyle 设置单元格样式
// @description 该方法用于在指定的工作表中,为给定范围的单元格设置特定的样式。单元格范围由起始列、起始行、结束列和结束行定义。
// @param sheet string "要设置样式的工作表名称"
// @param startCol int "设置样式的起始列号(从1开始计数)"
// @param startRow int "设置样式的起始行号(从1开始计数)"
// @param endCol int "设置样式的结束列号"
// @param endRow int "设置样式的结束行号"
// @param styleID int "要应用的样式的ID"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetCellsStyle(sheet string, startCol int, startRow int, endCol int, endRow int, styleID int) error {
startCell, err := excelize.CoordinatesToCellName(startCol, startRow)
if err != nil {
return err
}
endCell, err := excelize.CoordinatesToCellName(endCol, endRow)
if err != nil {
return err
}
return e.File.SetCellStyle(sheet, startCell, endCell, styleID)
}
// @title SetCellHeadStyle 设置单元格头部样式
// @description 为指定工作表中的单个单元格设置头部样式。
// @param sheet string "工作表名称"
// @param col int "单元格所在的列号"
// @param row int "单元格所在的行号"
// @return error error "如果操作成功返回nil,否则返回错误信息"
func (e *Excel) SetCellHeadStyle(sheet string, col int, row int) error {
return e.SetCellStyle(sheet, col, row, e.HeadStyle)
}
// @title SetCellsHeadStyle 设置多个单元格头部样式
// @description 为指定工作表中的多个单元格设置头部样式。
// @param sheet string "工作表名称"
// @param startCol int "起始单元格的列号"
// @param startRow int "起始单元格的行号"
// @param endCol int "结束单元格的列号"
// @param endRow int "结束单元格的行号"
// @return error error "如果操作成功返回nil,否则返回错误信息"
func (e *Excel) SetCellsHeadStyle(sheet string, startCol int, startRow int, endCol int, endRow int) error {
return e.SetCellsStyle(sheet, startCol, startRow, endCol, endRow, e.HeadStyle)
}
// @title SetCellTitleStyle 设置单元格标题样式
// @description 为指定工作表中的单个单元格设置标题样式。
// @param sheet string "工作表名称"
// @param col int "单元格所在的列号"
// @param row int "单元格所在的行号"
// @return error error "如果操作成功返回nil,否则返回错误信息"
func (e *Excel) SetCellTitleStyle(sheet string, col int, row int) error {
return e.SetCellStyle(sheet, col, row, e.TitleStyle)
}
// @title SetCellsTitleStyle 设置多个单元格标题样式
// @description 为指定工作表中的多个单元格设置标题样式。
// @param sheet string "工作表名称"
// @param startCol int "起始单元格的列号"
// @param startRow int "起始单元格的行号"
// @param endCol int "结束单元格的列号"
// @param endRow int "结束单元格的行号"
// @return error error "如果操作成功返回nil,否则返回错误信息"
func (e *Excel) SetCellsTitleStyle(sheet string, startCol int, startRow int, endCol int, endRow int) error {
return e.SetCellsStyle(sheet, startCol, startRow, endCol, endRow, e.TitleStyle)
}
// @title SetCellContentStyle 设置单元格内容样式
// @description 为指定工作表中的单个单元格设置内容样式。
// @param sheet string "工作表名称"
// @param col int "单元格所在的列号"
// @param row int "单元格所在的行号"
// @return error error "如果操作成功返回nil,否则返回错误信息"
func (e *Excel) SetCellContentStyle(sheet string, col int, row int) error {
return e.SetCellStyle(sheet, col, row, e.ContentStyle)
}
// @title SetCellsContentStyle 设置多个单元格内容样式
// @description 为指定工作表中的多个单元格设置内容样式。
// @param sheet string "工作表名称"
// @param startCol int "起始单元格的列号"
// @param startRow int "起始单元格的行号"
// @param endCol int "结束单元格的列号"
// @param endRow int "结束单元格的行号"
// @return error error "如果操作成功返回nil,否则返回错误信息"
func (e *Excel) SetCellsContentStyle(sheet string, startCol int, startRow int, endCol int, endRow int) error {
return e.SetCellsStyle(sheet, startCol, startRow, endCol, endRow, e.ContentStyle)
}
// @title MergeCells 合并单元格
// @description 该方法用于在指定的工作表中合并一个矩形区域的单元格。这个区域由起始行、起始列、结束行和结束列定义。
// @param sheet string "要合并单元格的工作表名称"
// @param startRow int "合并区域的起始行号(从1开始计数)"
// @param startCol int "合并区域的起始列号(从1开始计数)"
// @param endRow int "合并区域的结束行号"
// @param endCol int "合并区域的结束列号"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) MergeCells(sheet string, startRow, startCol, endRow, endCol int) (err error) {
startCell, err := excelize.CoordinatesToCellName(startCol, startRow)
if err != nil {
return err
}
endCell, err := excelize.CoordinatesToCellName(endCol, endRow)
if err != nil {
return err
}
return e.File.MergeCell(sheet, startCell, endCell)
}
// @title SetRowHeight 设置行高
// @description 该方法用于在指定的工作表中设置指定行的行高。
// @param sheet string "要设置行高的工作表名称"
// @param row int "要设置行高的行号(从1开始计数)"
// @param height float64 "要设置的行高值"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetRowHeight(sheet string, row int, height float64) error {
return e.File.SetRowHeight(sheet, row, height)
}
// @title SetRowsHeight 设置多行高度
// @description 该方法用于在指定的工作表中设置一个连续行范围内的所有行的行高。
// @param sheet string "要设置行高的工作表名称"
// @param startRow int "设置行高的起始行号(从1开始计数)"
// @param endRow int "设置行高的结束行号"
// @param height float64 "要设置的所有行的行高值"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetRowsHeight(sheet string, startRow int, endRow int, height float64) (err error) {
for i := startRow; i <= endRow; i++ {
err = e.File.SetRowHeight(sheet, i, height)
if err != nil {
return
}
}
return
}
// @title SetColWidth 设置列宽
// @description 该方法用于在指定的工作表中设置指定列的列宽。
// @param sheet string "要设置列宽的工作表名称"
// @param col int "要设置列宽的列号(从1开始计数)"
// @param width float64 "要设置的列宽值"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetColWidth(sheet string, col int, width float64) error {
cell, err := excelize.ColumnNumberToName(col)
if err != nil {
return err
}
return e.File.SetColWidth(sheet, cell, cell, width)
}
// @title SetColsWidth 设置多列宽度
// @description 该方法用于在指定的工作表中设置一个连续列范围内的所有列的列宽。
// @param sheet string "要设置列宽的工作表名称"
// @param startCol int "设置列宽的起始列号(从1开始计数)"
// @param endCol int "设置列宽的结束列号"
// @param width float64 "要设置的所有列的列宽值"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetColsWidth(sheet string, startCol int, endCol int, width float64) (err error) {
startColName, err := excelize.ColumnNumberToName(startCol)
if err != nil {
return
}
endColName, err := excelize.ColumnNumberToName(endCol)
if err != nil {
return
}
return e.File.SetColWidth(sheet, startColName, endColName, width)
}
// @title SetColDefaultWidth 设置列为默认宽度
// @description 该方法用于在指定的工作表中设置指定列为默认列宽。
// @param sheet string "要设置默认列宽的工作表名称"
// @param col int "要设置默认列宽的列号(从1开始计数)"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetColDefaultWidth(sheet string, col int) error {
return e.SetColWidth(sheet, col, DEFAULT_COLUMN_WIDTH)
}
// @title SetColsDefaultWidth 设置多列为默认宽度
// @description 该方法用于在指定的工作表中设置一个连续列范围内的所有列为默认列宽。
// @param sheet string "要设置默认列宽的工作表名称"
// @param startCol int "设置默认列宽的起始列号(从1开始计数)"
// @param endCol int "设置默认列宽的结束列号"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetColsDefaultWidth(sheet string, startcol, endcol int) error {
return e.SetColsWidth(sheet, startcol, endcol, DEFAULT_COLUMN_WIDTH)
}
// @title SetRowDefaultHeight 设置行为默认高度
// @description 该方法用于在指定的工作表中设置指定行为默认行高。
// @param sheet string "要设置默认行高的工作表名称"
// @param row int "要设置默认行高的行号(从1开始计数)"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetRowDefaultHeight(sheet string, row int) error {
return e.SetRowHeight(sheet, row, DEFAULT_ROW_HEIGHT)
}
// @title SetRowsDefaultHeight 设置多行为默认高度
// @description 该方法用于在指定的工作表中设置一个连续行范围内的所有行为默认行高。
// @param sheet string "要设置默认行高的工作表名称"
// @param startRow int "设置默认行高的起始行号(从1开始计数)"
// @param endRow int "设置默认行高的结束行号"
// @return err error "如果操作成功,返回nil;如果发生错误,返回错误信息"
func (e *Excel) SetRowsDefaultHeight(sheet string, startRow, endRow int) (err error) {
return e.SetRowsHeight(sheet, startRow, endRow, DEFAULT_ROW_HEIGHT)
}
// 标题样式
func (e *Excel) getTitleRowStyle() (err error) {
e.TitleStyle, err = e.File.NewStyle(&excelize.Style{
Alignment: &excelize.Alignment{ // 对齐方式
Horizontal: "center", // 水平对齐居中
Vertical: "center", // 垂直对齐居中
},
Font: &excelize.Font{ // 字体
Bold: true,
Size: 16,
},
Border: getBorder(),
})
return
}
// 头样式
func (e *Excel) getHeadRowStyle() (err error) {
e.HeadStyle, err = e.File.NewStyle(&excelize.Style{
Alignment: &excelize.Alignment{ // 对齐方式
Horizontal: "center", // 水平对齐居中
Vertical: "center", // 垂直对齐居中
WrapText: true, // 自动换行
},
Font: &excelize.Font{ // 字体
Bold: true,
Size: 14,
},
Border: getBorder(),
})
return
}
// 数据行样式
func (e *Excel) getDataRowStyle() (err error) {
style := excelize.Style{}
style.Border = getBorder()
style.Alignment = &excelize.Alignment{
Horizontal: "center", // 水平对齐居中
Vertical: "center", // 垂直对齐居中
WrapText: true, // 自动换行
}
style.Font = &excelize.Font{
Size: 12,
}
e.ContentStyle, _ = e.File.NewStyle(&style)
style.Fill = excelize.Fill{ // 背景颜色
Type: "pattern",
Color: []string{"#cce7f5"},
Pattern: 1,
}
e.ContentStyle2, err = e.File.NewStyle(&style)
return
}
// 边框样式
func getBorder() []excelize.Border {
return []excelize.Border{
{Type: "top", Color: "000000", Style: 1},
{Type: "bottom", Color: "000000", Style: 1},
{Type: "left", Color: "000000", Style: 1},
{Type: "right", Color: "000000", Style: 1},
}
}
5.总结
本文详细介绍了Golang中excelize库的基本使用方法,包括初始化Excel对象、常用操作等。通过这些方法,我们可以轻松地对Excel进行各种各样的操作。在实际开发中,我们可以根据自己的需求,灵活运用这些方法,实现复杂的Excel操作。