亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Golang操作excel的方法

Golang操作excel的方法

熱門標簽:福州鐵通自動外呼系統 澳門防封電銷卡 長沙ai機器人電銷 地圖標注測試 廣東語音外呼系統供應商 智能電銷機器人營銷 賺地圖標注的錢犯法嗎 濮陽自動外呼系統代理 烏魯木齊人工電銷機器人系統

關鍵術語介紹

為了方便開源庫的快速上手,我們先來了解 excel 中的幾個關鍵術語,如下圖所示,①為sheet,也就是表格中的頁簽;②為row,代表 excel 中的一行;③為cell,代表 excel 中的一個單元格。

正常情況下,創建一個表格的基本流程是打開 wps 點擊新建,這時會默認創建一個 sheet,然后在該 sheet 中的第一行填寫表頭,接下來根據表頭逐行填充內容,最后將文件另存為到硬盤的某個位置。這與 Golang 開源庫創建 excel 的流程基本相同,下面演示一個極簡表格的創建。

創建表格

創建表格前需要先引入 excel 庫,我們以比較熱門的 tealeg/xlsx 庫為例。

go get github.com/tealeg/xlsx

首先創建一個空文件,拿到文件句柄。

file := xlsx.NewFile()

創建一個名為人員信息收集的 sheet。

sheet, err := file.AddSheet("人員信息收集")
if err != nil {
 panic(err.Error())
}

然后為該 sheet 創建一行,這行作為我們的表頭。

row := sheet.AddRow()

在該行中創建一個單元格。

cell := row.AddCell()

現在給單元格填充內容,因為是表頭,暫且叫姓名

cell.Value = "姓名"

如何創建第二個單元格呢?原理相同,此處 cell 變量已定義,再創建新單元格只需賦值即可。

cell = row.AddCell()
cell.Value = "性別"

表頭已經設置好了,可以開始創建第二行來填充內容了,方式與上述無差別。

row = sheet.AddRow()
cell = row.AddCell()
cell.Value = "張三"
cell = row.AddCell()
cell.Value = "男"

表格設置完成后,將該文件保存,文件名可自定義。

err = file.Save("demo.xlsx")
if err != nil {
 panic(err.Error())
}

跑起來后,可以發現目錄中多了一個 demo.xlsx 文件,打開預覽內容如下,達到了預期效果。

文件源碼

package main

import "github.com/tealeg/xlsx"

func main() {
	file := xlsx.NewFile()
	sheet, err := file.AddSheet("人員信息收集")
	if err != nil {
		panic(err.Error())
	}
	row := sheet.AddRow()
	cell := row.AddCell()
	cell.Value = "姓名"
	cell = row.AddCell()
	cell.Value = "性別"

	row = sheet.AddRow()
	cell = row.AddCell()
	cell.Value = "張三"
	cell = row.AddCell()
	cell.Value = "男"

	err = file.Save("demo.xlsx")
	if err != nil {
		panic(err.Error())
	}
}

讀取表格

表格的讀取比創建簡單很多,依然以上文創建的文件為例。

output, err := xlsx.FileToSlice("demo.xlsx")
if err != nil {
 panic(err.Error())
}

只需將文件路徑傳入上述方法,即可自動讀取并返回一個三維切片,我們來讀取第一個 sheet 的第二行中的第一個單元格。

log.Println(output[0][1][1]) //Output: 男

由此一來就非常容易遍歷了。

for rowIndex, row := range output[0] {
 for cellIndex, cell := range row {
  log.Println(fmt.Sprintf("第%d行,第%d個單元格:%s", rowIndex+1, cellIndex+1, cell))
 }
}

2020/10/11 16:15:29 第1行,第1個單元格:姓名
2020/10/11 16:15:29 第1行,第2個單元格:性別
2020/10/11 16:15:29 第2行,第1個單元格:張三
2020/10/11 16:15:29 第2行,第2個單元格:男

文件源碼

package main

import (
	"fmt"
	"github.com/tealeg/xlsx"
	"log"
)

func main() {
	output, err := xlsx.FileToSlice("demo.xlsx")
	if err != nil {
		panic(err.Error())
	}
	log.Println(output[0][1][1])
	for rowIndex, row := range output[0] {
		for cellIndex, cell := range row {
			log.Println(fmt.Sprintf("第%d行,第%d個單元格:%s", rowIndex+1, cellIndex+1, cell))
		}
	}
}

 

修改表格

只是讀取表格內容可能在特定場景下無法滿足需求,有時候需要對表格內容進行更改。

file, err := xlsx.OpenFile("demo.xlsx")
if err != nil {
 panic(err.Error())
}

修改表格之前依然需要先讀取文件,只是這次并沒有直接將其轉化為三維切片。拿到文件句柄后,可以直接修改某一行的內容。

file.Sheets[0].Rows[1].Cells[0].Value = "李四"

上述代碼將第二行的張三改為了李四,但這還沒有結束,接下來需要將文件重新保存。

err = file.Save("demo.xlsx")
if err != nil {
 panic(err.Error())
}

打開文件預覽,可以看到已經成功將張三改為了李四。

文件源碼

package main

import "github.com/tealeg/xlsx"

func main() {
	file, err := xlsx.OpenFile("demo.xlsx")
	if err != nil {
		panic(err.Error())
	}
	file.Sheets[0].Rows[1].Cells[0].Value = "李四"
	err = file.Save("demo.xlsx")
	if err != nil {
		panic(err.Error())
	}
}

樣式設置

該開源庫不僅支持內容的編輯,還支持表格的樣式設置,樣式統一由結構體 Style 來負責。

type Style struct {
	Border     Border
	Fill      Fill
	Font      Font
	ApplyBorder   bool
	ApplyFill    bool
	ApplyFont    bool
	ApplyAlignment bool
	Alignment    Alignment
	NamedStyleIndex *int
}

拿上述生成的文件為例,假如我要將姓名所在單元格居中,首先要實例化樣式對象。

style := xlsx.NewStyle()

賦值居中屬性。

style.Alignment = xlsx.Alignment{
 Horizontal:  "center",
 Vertical:   "center",
}

給第一行第一個單元格設置樣式。

file.Sheets[0].Rows[0].Cells[0].SetStyle(style)

與修改表格處理邏輯相同,最后保存文件。

err = file.Save("demo.xlsx")
if err != nil {
 panic(err.Error())
}

打開預覽,可以看到文字已經上下左右居中。

同理,可以修改文字顏色和背景,同樣通過 style 的屬性來設置。

style.Font.Color = xlsx.RGB_Dark_Red
style.Fill.BgColor = xlsx.RGB_Dark_Green

其他還有很多屬性可以設置,比如合并單元格、字體、大小等等,大家可以自行測試。

文件源碼

package main

import "github.com/tealeg/xlsx"

func main() {
	file, err := xlsx.OpenFile("demo.xlsx")
	if err != nil {
		panic(err.Error())
	}
	style := xlsx.NewStyle()
	style.Font.Color = xlsx.RGB_Dark_Red
	style.Fill.BgColor = xlsx.RGB_Dark_Green
	style.Alignment = xlsx.Alignment{
		Horizontal:  "center",
		Vertical:   "center",
	}
	file.Sheets[0].Rows[0].Cells[0].SetStyle(style)
	err = file.Save("demo.xlsx")
	if err != nil {
		panic(err.Error())
	}
}

我是平也,這有一個專注Gopher技術成長的開源項目「go home」

到此這篇關于Golang操作excel的方法的文章就介紹到這了,更多相關Golang操作excel內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Golang讀寫Excel的方法教程
  • golang與PHP輸出excel示例

標簽:慶陽 太原 德州 廣西 貴陽 阿克蘇 調研邀請 西雙版納

巨人網絡通訊聲明:本文標題《Golang操作excel的方法》,本文關鍵詞  Golang,操作,excel,的,方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Golang操作excel的方法》相關的同類信息!
  • 本頁收集關于Golang操作excel的方法的相關信息資訊供網民參考!
  • 推薦文章
    韩国毛片 免费| 欧美国产日韩一区二区三区| 成人高清视频在线观看| 九九久久99| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产一区二区精品久久91| 国产精品免费精品自在线观看| 青青青草影院 | 精品视频在线观看一区二区| 可以在线看黄的网站| 亚洲 欧美 91| 九九热国产视频| 亚飞与亚基在线观看| 韩国三级视频网站| 在线观看成人网 | 四虎精品在线观看| 午夜激情视频在线播放| 美国一区二区三区| 黄色福利片| 四虎影视精品永久免费网站 | 美女被草网站| 日韩免费在线视频| 青青久久网| 国产高清视频免费| 999久久狠狠免费精品| 日韩欧美一二三区| a级毛片免费全部播放| 日韩在线观看视频黄| 久久福利影视| 国产精品免费久久| 麻豆污视频| 国产视频一区二区在线播放| 日韩综合| 日本特黄特色aa大片免费| 久久精品欧美一区二区| 日韩专区亚洲综合久久| 精品视频在线观看一区二区| 日日夜人人澡人人澡人人看免| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久精品免视看国产成人2021| 91麻豆精品国产自产在线观看一区| 亚飞与亚基在线观看| 免费一级片在线| 国产91精品系列在线观看| 日韩中文字幕一区二区不卡| 香蕉视频一级| 久久99欧美| 成人高清护士在线播放| 国产亚洲免费观看| 国产一区二区精品| 成人免费网站久久久| 国产网站麻豆精品视频| 91麻豆精品国产片在线观看| 久久精品店| 麻豆系列国产剧在线观看| 久久国产精品自线拍免费| 九九九网站| 99久久精品国产国产毛片| 美女免费黄网站| 久久99欧美| 青青久在线视频| 免费的黄色小视频| 亚洲第一色在线| 精品毛片视频| 国产a视频精品免费观看| 麻豆系列国产剧在线观看| 99久久精品国产高清一区二区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 尤物视频网站在线| 四虎精品在线观看| 亚欧成人乱码一区二区| 天天做人人爱夜夜爽2020毛片| 91麻豆精品国产自产在线| 欧美一级视频免费| 免费国产在线观看| 免费国产在线视频| 精品国产一区二区三区久 | 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 97视频免费在线| 二级片在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品国产一区二区三区久| 国产成人精品综合| 日本在线不卡视频| 国产成人啪精品| 日韩在线观看免费| 沈樵在线观看福利| 韩国三级香港三级日本三级| 精品视频一区二区三区免费| 亚欧成人乱码一区二区| 一级女人毛片人一女人| 久久99中文字幕久久| 美女免费精品高清毛片在线视 | 日韩男人天堂| 精品国产香蕉在线播出| 日韩中文字幕在线亚洲一区| 国产91精品一区二区| 成人免费网站久久久| 久久久久久久网| 成人高清视频在线观看| 欧美大片毛片aaa免费看| 久久精品欧美一区二区| 国产伦精品一区三区视频| 亚洲天堂在线播放| 国产精品自拍一区| 99久久网站| 中文字幕一区二区三区 精品 | 韩国三级香港三级日本三级| 四虎论坛| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日日日夜夜操| 午夜在线亚洲| 欧美爱色| 999精品视频在线| 色综合久久天天综合绕观看| 精品国产一区二区三区免费| 欧美激情一区二区三区视频高清| 成人影视在线播放| 韩国三级香港三级日本三级la| 日韩一级黄色| 国产成人欧美一区二区三区的| 九九九网站| 二级片在线观看| 精品视频一区二区三区免费| 精品视频在线观看一区二区| 欧美另类videosbestsex久久| 免费一级片在线| 日韩免费在线视频| 毛片电影网| 精品视频在线观看一区二区三区| 免费的黄色小视频| 久久精品道一区二区三区| 日韩男人天堂| 免费国产一级特黄aa大片在线| 色综合久久天天综合观看| 九九九网站| 欧美激情一区二区三区视频 | 国产成人精品综合久久久| 久草免费在线视频| 韩国毛片免费大片| 九九九网站| 日本特黄特黄aaaaa大片| 欧美一级视频免费观看| 可以免费看毛片的网站| 欧美日本二区| 欧美1卡一卡二卡三新区| 国产a视频精品免费观看| 精品国产一区二区三区国产馆| 韩国三级视频网站| 亚洲天堂免费观看| 国产一区国产二区国产三区| 九九精品久久| 99久久精品国产国产毛片| 亚洲女人国产香蕉久久精品| 99久久精品国产高清一区二区| 精品国产一区二区三区久 | 深夜做爰性大片中文| 国产不卡在线观看视频| 国产高清在线精品一区a| 国产不卡在线播放| 黄色福利| 国产高清在线精品一区a| 精品在线观看一区| 一级毛片视频在线观看| 午夜欧美成人久久久久久| 国产一区二区精品久久| 成人免费网站视频ww| 日韩中文字幕一区二区不卡| 精品国产三级a| 色综合久久天天综合绕观看| 国产成人欧美一区二区三区的| 99久久精品国产麻豆| 四虎精品在线观看| 日本免费乱人伦在线观看| 日日夜夜婷婷| 天堂网中文字幕| 四虎影视久久| 精品视频一区二区| 一 级 黄 中国色 片| 国产一区国产二区国产三区| 成人高清视频在线观看| 国产综合成人观看在线| 日韩专区亚洲综合久久| 成人免费网站久久久| 亚久久伊人精品青青草原2020| 午夜欧美成人久久久久久| 国产精品自拍在线| 国产亚洲精品成人a在线| 九九精品在线| 成人影视在线观看| 精品久久久久久中文| 欧美激情一区二区三区在线 | 国产一区二区精品久久| 国产视频久久久久| 天天做人人爱夜夜爽2020 | 成人免费福利片在线观看| 国产91精品一区二区| 国产视频一区二区三区四区 | 精品国产香蕉伊思人在线又爽又黄| 国产国语对白一级毛片|