【Golang】go語言寫入數據并保存Excel表格

    • 導入包
    • 創建文件
    • 添加表格
    • 添加行
    • 添加單元格
    • 保存文件
    • 封裝

導入包

首先,安裝github.com/tealeg/xlsx庫。可以通過以下命令在終端中安裝:

go get github.com/tealeg/xlsx

創建文件

指定好文件的名字

fileName := "D:\\a.xlsx"

再判斷文件是否存在(這一步通常用于清空原來寫入到excel的內容)

// 檢查文件是否存在_, err1 := os.Stat(fileName)// 如果文件存在,刪除文件if err1 == nil {err := os.Remove(fileName)if err != nil {log.Fatalf("刪除文件失敗: %v", err)}}

創建一個新的 Excel 文件

file := xlsx.NewFile()

添加表格

添加一個 Sheet

// 添加一個 Sheetsheet, err := file.AddSheet("Sheet1")if err != nil {fmt.Printf("Error creating sheet: %s\n", err)return}

添加行

表格中添加一行

//表格中添加一行
row := sheet.AddRow()

添加單元格

行中添加單元格并將值寫入

cell := row.AddCell()
cell.SetValue(value)

保存文件

將文件保存到文件路徑所在的位置

// 將 Excel 文件保存到本地if err := file.Save(fileName); err != nil {log.Fatal(err)}

封裝

將上述內容封裝成一個方法

package mainimport ("fmt""github.com/tealeg/xlsx""log""os"
)func main() {fileName := "D:\\a.xlsx"// 檢查文件是否存在_, err1 := os.Stat(fileName)// 如果文件存在,刪除文件if err1 == nil {err := os.Remove(fileName)if err != nil {log.Fatalf("刪除文件失敗: %v", err)}}// 創建一個新的 Excel 文件file := xlsx.NewFile()// 添加一個 Sheetsheet, err := file.AddSheet("Sheet1")if err != nil {fmt.Printf("Error creating sheet: %s\n", err)return}// 寫入數據到第一行的每一列data := []string{"Number", "time", "CPU/s"}// 添加一行row := sheet.AddRow()//寫入數據到第一行的每一列for _, value := range data {cell := row.AddCell()cell.SetValue(value)}// 將 Excel 文件保存到本地if err := file.Save(fileName); err != nil {log.Fatal(err)}//添加一行到表格中newRow := sheet.AddRow()//當前的行依次添加單元格再把值放進去newRow.AddCell().SetValue("NO:1")newRow.AddCell().SetValue("2024-04-20 20:26:32")newRow.AddCell().SetValue("168s")// 最后將Excel文件保存到本地if err := file.Save(fileName); err != nil {log.Fatal(err)}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/22097.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/22097.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/22097.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java集合概述

分類 分為兩大類:Collection接口類和Map接口類 這兩個接口都繼承自一個共同的接口:Iterable接口,意為可迭代的 Iterable接口當中有一個Iterator迭代器接口對象,作為接口的變量(public static final修飾)…

Win10字體模糊?記好這5個方法,解決問題很簡單!

“我的電腦是win10的,不知道是什么原因,電腦字體總是很模糊,大家有什么方法可以解決這個問題嗎?” 在數字時代的浪潮中,Win10以其出色的性能和豐富的功能贏得了廣大用戶的青睞。然而,就像任何一款操作系統一…

廣東電網突破2億千瓦,華火新能源電燃灶引領綠色烹飪“灶”未來

近日,廣東電網統調裝機容量歷史性突破2億千瓦,標志著廣東省在電力發展上邁出了堅實的步伐。這一重大成就不僅彰顯了廣東在能源領域的強勁實力,也為華火新能源電燃灶等綠色技術的普及應用提供了有力的支撐。 廣東電網統調裝機容量的突破&#…

用ffmpeg對視頻添加語音、背景音樂和字幕的方法

先看代碼: ffmpeg.exe ^ -i "D:/test/video.mp4" ^ -i "D:/test/voice.mp3" ^ -i "D:/test/music.mp3" ^ -i "D:/test/voice.srt" ^ -filter_complex "[1:a]volume1.0,asetptsPTS-STARTPTS[a_voice];[2:a]volume0.5,…

【 0 基礎 Docker 極速入門】鏡像、容器、常用命令總結

Docker Images(鏡像)生命周期 Docker 是一個用于創建、部署和運行應用容器的平臺。為了更好地理解 Docker 的生命周期,以下是相關概念的介紹,并說明它們如何相互關聯: Docker: Docker 是一個開源平臺&#…

重生奇跡mu五大王國

勇者大陸王國 奇跡大陸的戰士,他們因為非常重視劍,而且穿著黑色的衣服,所以叫他們魔劍士。古代勇者大陸王國的魔劍士們都是用鎧甲偽裝自己的。但是這些個聯合國統一成一個帝國之后,勇者大陸王國漸漸成為一個小城市。千年之后的現…

數據持久化第七課-URL重寫與Ajax

數據持久化第七課-URL重寫與Ajax 一.預習筆記 1.URL重寫(對網頁地址進行保護) 首先編寫module,實現對網絡地址的處理 其次就是module的配置 最后驗證url重寫技術 2.Ajax數據交互 編寫后端響應數據 處理跨域的配置問題 運行項目得到后端響應數據的地址 編寫前端ajax進行數據請…

程序人生 - 前端拿到后端數據,不能直接用還要再處理,合理嗎?

前言 從后端拿到的 list 是散的,需要前端遍歷 list 根據 item 的某些屬性把同類型的 item 合并到一個 list 中,這樣合理嗎?我覺得這個不是應該在后端完成的嗎? 這種撕扯,讓我想起很久之前的一個笑話。我有個朋友之前…

EXCEL上傳得時候特殊情況

比如excel里面不全是我們需要的,還有一些需要處理EXCEL中的日期,去掉‘-’等 DATA:begin_row TYPE i VALUE 2,begin_col TYPE i VALUE 1,end_row TYPE i VALUE 9999,end_col TYPE i VALUE 90,filename TYPE rlgrap-filename,gt_excel TYPE zalsme…

AI產品經理系列-如何使用kimi快速撰寫用戶故事(含提示詞)

在AI時代,可能人人都可成為產品經理。 之前我們聊過如何使用kimi協助完成產品需求文檔,如何寫競品分析報告,這一篇我們聊聊用戶故事,如何使用kimi協助撰寫產品需求文檔中的用戶故事。 在此之前我們先了解下什么是用戶故事&#…

深入理解Django Serializer及其在Go語言中的實現20240604

深入理解Django Serializer及其在Go語言中的實現 在現代Web開發中,前后端分離已成為主流架構模式。作為開發者,我們經常需要處理數據的序列化和反序列化,以便在前后端之間傳遞數據。在Django中,Serializer是一個強大的工具&#…

Spring類加載機制揭秘:深度解析“驗證”階段

1. 引言 在Spring框架中,類加載機制是一個至關重要的環節,它確保了應用程序在運行時能夠正確地加載、鏈接和初始化所需的類。其中,驗證(Verification)作為類加載機制的一個重要階段,起到了至關重要的作用。…

車牌號碼智能監測識別攝像機

車牌號碼智能監測識別攝像機是一項革命性的技術,為交通管理和安全提供了全新的解決方案。這種攝像機利用先進的人工智能和圖像識別技術,能夠實時監測道路上的車輛,并準確識別車輛的車牌號碼,為交通管理和安全提供了強有力的支持。…

java 工作排序(Job Sequencing Problem)

給定一個作業數組,其中每個作業都有一個截止期限,如果作業在截止期限之前完成,則可獲得相關利潤。此外,每個作業都占用一個單位時間,因此任何作業的最小可能截止期限都是 1。如果一次只能安排一項作業,則最…

代碼隨想錄算法訓練營Day60 | 84.柱狀圖中最大的矩形 | Python | 個人記錄向

注:今天是代碼隨想錄訓練營的最后一天啦!!! 本文目錄 84.柱狀圖中最大的矩形做題看文章 以往忽略的知識點小結個人體會 84.柱狀圖中最大的矩形 代碼隨想錄:84.柱狀圖中最大的矩形 Leetcode:84.柱狀圖中最…

解決使用Python檢查本地網絡中運行的Web服務器的問題

如果我們要檢查本地網絡中運行的 Web 服務器,可以使用 Python 的 socket 模塊來進行網絡連接測試。以下是一個簡單的示例代碼,演示如何檢查本地網絡中運行的 Web 服務器: 1、問題背景 在學習如何使用 Python 時,一位用戶希望編寫…

從零開始:騰訊云輕量應用服務器上部署MaxKB項目(基于LLM大語言模型的知識庫問答系統)

使用騰訊云輕量應用服務器部署和使用MaxKB項目 前言 一, MaxKB介紹 MaxKB是基于LLM大語言模型的知識庫問答系統,旨在成為企業的最強大腦。它支持開箱即用,無縫嵌入到第三方業務系統,并提供多模型支持,包括主流大模型…

我們如何收到衛星信號?(導航電文,載波與測距碼)

衛星信號 在介紹所有衛星信號之前,首先要明確一些概念: 所有的衛星信號,都是一段電磁波,用戶接收的,也是一段電磁波。 但是我們認知中的電磁波,就是一段波,就像我們打出去的交一樣&#xff0c…

【UML用戶指南】-03-UML的14種圖

目錄 1、結構圖 1、類圖(class diagram) 2、對象圖(object diagram) 3、構件圖 (component diagram) 4、組合結構圖 5、包圖(package diagram) 6、部署圖(deploym…

Android輸入法IME(二)

2. IME初始化啟動流程 2.1. IME客戶端(IMM)初始化流程 涉及代碼文件路徑: frameworks/base/core/java/android/view/ViewRootImpl.java frameworks/base/core/java/android/view/WindowManagerGlobal.java frameworks/base/core/java/andro…