前言 Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLAM / XLSM / XLSX / XLTM / XLTX files.(Github )
下载依赖 1 go get github.com/xuri/excelize/v2
对Excel文件的操作 新建Excel文件 1 file := excelize.NewFile()
保存Excel文件
Book1.xlsx:文件名
1 err := file.SaveAs("Book1.xlsx" );
打开已存在的Excel文件 1 2 file, err := excelize.OpenFile("1.xlsx" ) defer file.Close()
从HTTP请求中打开Excel文件流
req:*http.RequestHTTP请求key:请求的键
1 2 3 httpFile, _, err := req.FormFile("key" ) defer httpFile.Close()file, err := excelize.OpenReader(httpFile)
HTTP响应设置为Excel文件流
responseWriter:http.ResponseWriterHTTP响应Book1.xlsx:文件名
1 2 3 responseWriter.Header().Set("Content-Disposition" , "attachment; filename=Book1.xlsx" ) responseWriter.Header().Set("Content-Type" , req.Header.Get("Content-Type" )) _, err := file.WriteTo(responseWriter)
对工作簿的操作 新建工作簿 1 index, err := file.NewSheet("Sheet2" )
设置Excel文件的默认工作簿 1 file.SetActiveSheet(index)
对单元格的操作 获取表格内容 1 value, err := file.GetCellValue("Sheet1" , "A1" )
遍历所有单元格的内容 1 2 3 4 5 6 7 rows, err := file.GetRows("Sheet1" ) for _, row := range rows { for _, col := range row { fmt.Print(col, "\t" ) } fmt.Println() }
获取所有已经合并的表格列表 1 cellList, err := file.GetMergeCells("Sheet1" )
获取指定行的行高 1 height, err := file.GetRowHeight("Sheet1" , 1 )
获取指定列的列宽 1 width, err := file.GetColWidth("Sheet1" , "A" )
完成 参考文献 CSDN——Generalzy