




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第Golang生成Excel文檔的方法步驟目錄關于Excelize庫
性能對比
安裝
創建Excel文檔
實際場景復現
創建工作表
刪除默認創建的工作表
合并單元格
單元格樣式
文字水平居中
給單元格設置純色填充
Style結構體
參考文檔基于數據生成Excel文檔是一個很常見的需求,本文將介紹如何使用Go的Excelize庫去生成Excel文檔,以及一些具體場景下的代碼實現。
關于Excelize庫
Excelize是Go語言編寫的用于操作OfficeExcel文檔基礎庫,基于ECMA-376,ISO/IEC29500國際標準。可以使用它來讀取、寫入由MicrosoftExcel2007及以上版本創建的電子表格文檔。支持XLSX/XLSM/XLTM/XLTX等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等復雜組件的文檔,并提供流式讀寫API,用于處理包含大規模數據的工作簿。可應用于各類報表平臺、云計算、邊緣計算等系統。使用本類庫要求使用的Go語言為1.15或更高版本。
性能對比
下圖是一些主要的開源Excel庫在生成12800*50純文本矩陣時的性能對比(OS:macOSMojaveversion10.14.4,CPU:3.4GHzIntelCorei5,RAM:16GB2400MHzDDR4,HDD:1TB),包括Go、Python、Java、PHP和NodeJS。
安裝
最新的版本是v2.4.0:
goget/360EntSecGroup-Skylar/excelize/v2
創建Excel文檔
下面的案例中,我們創建了一個Excel文檔,并使用NewSheet方法新建了一個Sheet2工作表,Sheet1是默認創建的工作表,然后我們使用SetCellValue方法分別在Sheet2工作表的A2單元格和Sheet1表格的B2單元格設置值,并通過使用SetActiveSheet方法設置Sheet2工作表為默認的工作表,最終調用SaveAs方法將數據寫入Excel文檔中:
packagemain
import(
"fmt"
"/360EntSecGroup-Skylar/excelize/v2"
funcmain(){
f:=excelize.NewFile()
//創建一個工作表
index:=f.NewSheet("Sheet2")
//設置單元格的值
f.SetCellValue("Sheet2","A2","Helloworld.")
f.SetCellValue("Sheet1","B2",100)
//設置工作簿的默認工作表
f.SetActiveSheet(index)
//根據指定路徑保存文件
iferr:=f.SaveAs("Book1.xlsx");err!=nil{
fmt.Println(err)
實際場景復現
創建工作表
工作表名稱是大小寫敏感的:
index:=f.NewSheet("Sheet2")
刪除默認創建的工作表
默認創建的Excel文檔是包含一個名為Sheet1的工作表,我們可能并不需要這個默認工作表,這個時候我們可以刪除這個工作表:
f.DeleteSheet("Sheet1")
合并單元格
合并Sheet1工作表上F1:I2區域內的單元格:
excel.MergeCell("Sheet1","F1","I2")
單元格樣式
給單元格設置樣式會經常遇到,比如設置單元格的背景顏色,Excelize庫提供下面兩個方法進行設置單元格樣式(NewStyle和SetCellStyle):
//通過給定的樣式格式JSON或結構體的指針創建樣式并返回樣式索引。
//請注意,顏色需要使用RGB色域代碼表示。
style,err:=f.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
iferr!=nil{
fmt.Println(err)
err=f.SetCellStyle("Sheet1","D7","D7",style)
文字水平居中
文字水平居中需要用到Alignment樣式結構體:
typeAlignmentstruct{
Horizontalstring`json:"horizontal"`
Indentint`json:"indent"`
JustifyLastLinebool`json:"justify_last_line"`
ReadingOrderuint64`json:"reading_order"`
RelativeIndentint`json:"relative_indent"`
ShrinkToFitbool`json:"shrink_to_fit"`
TextRotationint`json:"text_rotation"`
Verticalstring`json:"vertical"`
WrapTextbool`json:"wrap_text"`
水平居中只要設置Horizontal的值為center即可:
style,err:=f.NewStyle(`{"alignment":{"horizontal":"center"}}`)
iferr!=nil{
fmt.Println(err)
err=excel.SetCellStyle("Sheet1","B1","B1",style)
給單元格設置純色填充
給單元格填充顏色會使用到Fill樣式結構體:
typeFillstruct{
Typestring`json:"type"`
Patternint`json:"pattern"`
Color[]string`json:"color"`
Shadingint`json:"shading"`
Style結構體
從上面設置樣式的代碼中,我們可以發現border是一個數組,而alignment是一個結構體,這是由Style結構體決定的:
typeStylestruct{
Border[]Border`json:"border"`
FillFill`json:"fill"`
Font*Font`json:"font"`
Alignment*Alignment`json:"alignment"`
Protection*Protection`json:"protection"`
NumFmtint`json:"number_format"`
DecimalPlacesint`json:"decimal_places"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 德陽城市軌道交通職業學院《素描靜物石膏像》2023-2024學年第一學期期末試卷
- 貴州財經職業學院《科技英語寫作與溝通》2023-2024學年第一學期期末試卷
- 2024-2025學年北京市八十中學七年級數學第一學期期末質量檢測試題含解析
- 包頭鋼鐵職業技術學院《中醫腫瘤防治學》2023-2024學年第一學期期末試卷
- 廣西中遠職業學院《工程水文學(港)》2023-2024學年第一學期期末試卷
- 渤海石油職業學院《遙感水文學》2023-2024學年第一學期期末試卷
- 電子廠現場管理考試試題及答案
- 電焊考試試題總匯及答案
- 2025屆北京市海淀區第四中學數學七上期末學業質量監測模擬試題含解析
- 北京聯合大學《動物環境衛生與牧場設計》2023-2024學年第一學期期末試卷
- YY/T 1851-2022用于增材制造的醫用純鉭粉末
- GB/Z 13800-2021手動輪椅車
- GB/T 6109.17-2008漆包圓繞組線第17部分:180級自粘性直焊聚酯亞胺漆包銅圓線
- GB/T 5163-2006燒結金屬材料(不包括硬質合金)可滲性燒結金屬材料密度、含油率和開孔率的測定
- 英語學科核心素養教案設計
- 小學二年級數學下冊找規律復習題
- GPS與慣導系統的組合導航技術課件
- 2020-2021年度廣東省湛江市赤坎區教師縣鄉選調招聘考試《教育基礎知識》試卷及答案【解析】
- DB15T 489-2019 石油化學工業建設工程技術資料管理規范
- (新版)無人機駕駛員資格理論考試題庫及答案
- HALCON編程基礎與工程應用全書ppt課件匯總(完整版)
評論
0/150
提交評論