




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Golang生成Excel文檔的方法步驟目錄關(guān)于Excelize庫(kù)
性能對(duì)比
安裝
創(chuàng)建Excel文檔
實(shí)際場(chǎng)景復(fù)現(xiàn)
創(chuàng)建工作表
刪除默認(rèn)創(chuàng)建的工作表
合并單元格
單元格樣式
文字水平居中
給單元格設(shè)置純色填充
Style結(jié)構(gòu)體
參考文檔基于數(shù)據(jù)生成Excel文檔是一個(gè)很常見(jiàn)的需求,本文將介紹如何使用Go的Excelize庫(kù)去生成Excel文檔,以及一些具體場(chǎng)景下的代碼實(shí)現(xiàn)。
關(guān)于Excelize庫(kù)
Excelize是Go語(yǔ)言編寫(xiě)的用于操作OfficeExcel文檔基礎(chǔ)庫(kù),基于ECMA-376,ISO/IEC29500國(guó)際標(biāo)準(zhǔn)??梢允褂盟鼇?lái)讀取、寫(xiě)入由MicrosoftExcel2007及以上版本創(chuàng)建的電子表格文檔。支持XLSX/XLSM/XLTM/XLTX等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等復(fù)雜組件的文檔,并提供流式讀寫(xiě)API,用于處理包含大規(guī)模數(shù)據(jù)的工作簿。可應(yīng)用于各類(lèi)報(bào)表平臺(tái)、云計(jì)算、邊緣計(jì)算等系統(tǒng)。使用本類(lèi)庫(kù)要求使用的Go語(yǔ)言為1.15或更高版本。
性能對(duì)比
下圖是一些主要的開(kāi)源Excel庫(kù)在生成12800*50純文本矩陣時(shí)的性能對(duì)比(OS:macOSMojaveversion10.14.4,CPU:3.4GHzIntelCorei5,RAM:16GB2400MHzDDR4,HDD:1TB),包括Go、Python、Java、PHP和NodeJS。
安裝
最新的版本是v2.4.0:
goget/360EntSecGroup-Skylar/excelize/v2
創(chuàng)建Excel文檔
下面的案例中,我們創(chuàng)建了一個(gè)Excel文檔,并使用NewSheet方法新建了一個(gè)Sheet2工作表,Sheet1是默認(rèn)創(chuàng)建的工作表,然后我們使用SetCellValue方法分別在Sheet2工作表的A2單元格和Sheet1表格的B2單元格設(shè)置值,并通過(guò)使用SetActiveSheet方法設(shè)置Sheet2工作表為默認(rèn)的工作表,最終調(diào)用SaveAs方法將數(shù)據(jù)寫(xiě)入Excel文檔中:
packagemain
import(
"fmt"
"/360EntSecGroup-Skylar/excelize/v2"
funcmain(){
f:=excelize.NewFile()
//創(chuàng)建一個(gè)工作表
index:=f.NewSheet("Sheet2")
//設(shè)置單元格的值
f.SetCellValue("Sheet2","A2","Helloworld.")
f.SetCellValue("Sheet1","B2",100)
//設(shè)置工作簿的默認(rèn)工作表
f.SetActiveSheet(index)
//根據(jù)指定路徑保存文件
iferr:=f.SaveAs("Book1.xlsx");err!=nil{
fmt.Println(err)
實(shí)際場(chǎng)景復(fù)現(xiàn)
創(chuàng)建工作表
工作表名稱(chēng)是大小寫(xiě)敏感的:
index:=f.NewSheet("Sheet2")
刪除默認(rèn)創(chuàng)建的工作表
默認(rèn)創(chuàng)建的Excel文檔是包含一個(gè)名為Sheet1的工作表,我們可能并不需要這個(gè)默認(rèn)工作表,這個(gè)時(shí)候我們可以刪除這個(gè)工作表:
f.DeleteSheet("Sheet1")
合并單元格
合并Sheet1工作表上F1:I2區(qū)域內(nèi)的單元格:
excel.MergeCell("Sheet1","F1","I2")
單元格樣式
給單元格設(shè)置樣式會(huì)經(jīng)常遇到,比如設(shè)置單元格的背景顏色,Excelize庫(kù)提供下面兩個(gè)方法進(jìn)行設(shè)置單元格樣式(NewStyle和SetCellStyle):
//通過(guò)給定的樣式格式JSON或結(jié)構(gòu)體的指針創(chuàng)建樣式并返回樣式索引。
//請(qǐng)注意,顏色需要使用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樣式結(jié)構(gòu)體:
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"`
水平居中只要設(shè)置Horizontal的值為center即可:
style,err:=f.NewStyle(`{"alignment":{"horizontal":"center"}}`)
iferr!=nil{
fmt.Println(err)
err=excel.SetCellStyle("Sheet1","B1","B1",style)
給單元格設(shè)置純色填充
給單元格填充顏色會(huì)使用到Fill樣式結(jié)構(gòu)體:
typeFillstruct{
Typestring`json:"type"`
Patternint`json:"pattern"`
Color[]string`json:"color"`
Shadingint`json:"shading"`
Style結(jié)構(gòu)體
從上面設(shè)置樣式的代碼中,我們可以發(fā)現(xiàn)border是一個(gè)數(shù)組,而alignment是一個(gè)結(jié)構(gòu)體,這是由Style結(jié)構(gòu)體決定的:
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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025山西紅杰人才集團(tuán)有限公司招聘16人筆試參考題庫(kù)附帶答案詳解
- 色彩管理在紡織中應(yīng)用試題及答案
- 合同續(xù)簽意向協(xié)議書(shū)
- 網(wǎng)店托管合同協(xié)議書(shū)
- 分裝生產(chǎn)企業(yè)合同協(xié)議書(shū)
- 送餐合同協(xié)議書(shū)模板圖片
- 協(xié)議 合同互換協(xié)議書(shū)范本
- 下載售房合同協(xié)議書(shū)
- 理賠合同協(xié)議書(shū)
- 艾灸兼職合同協(xié)議書(shū)
- ??低曄到y(tǒng)圖標(biāo)
- 三年級(jí)語(yǔ)文下冊(cè)第七單元(集體備課)教材分析說(shuō)課稿課件
- 印染廠管理手冊(cè)
- 保潔服務(wù)崗位檢查考核評(píng)分標(biāo)準(zhǔn)
- 《字體與版式設(shè)計(jì)》教學(xué)課件(全)
- 四川大學(xué)年《系統(tǒng)解剖學(xué)》期末試題及答案
- 幼兒園繪本:《小蛇散步》 課件
- 博德之門(mén)BG+TOSC細(xì)節(jié)攻略
- 正畸沙龍專(zhuān)用宣教PPT-口腔正畸正當(dāng)時(shí)
- 計(jì)算機(jī)網(wǎng)絡(luò)故障的診斷與解決方法論文
- 阿帕套裝汽車(chē)改燈燈光升級(jí)ppt課件
評(píng)論
0/150
提交評(píng)論