Heim  >  Artikel  >  Backend-Entwicklung  >  Golang implementiert Excel-Lesen und -Schreiben

Golang implementiert Excel-Lesen und -Schreiben

王林
王林Original
2023-05-13 10:04:373473Durchsuche

Da der Bedarf an Datenverarbeitung immer wichtiger wird, sind Daten in Excel-Tabellen nach und nach zu einem unverzichtbaren Bestandteil der täglichen Arbeit und des Lebens geworden. In der Programmiersprache Golang gibt es auch hervorragende Bibliotheken, mit denen Sie problemlos Excel-Dateien lesen und schreiben können. Dieser Artikel führt Sie Schritt für Schritt durch das Lesen und Schreiben der Golang-Version von Excel-Dateien.

  1. Installieren Sie die Excel-Verarbeitungsbibliothek

Um die Lese- und Schreibvorgänge von Excel-Dateien zu realisieren, müssen wir die Golang-Bibliothek eines Drittanbieters, go-excelize, verwenden. Führen Sie den folgenden Befehl aus, um die Bibliothek zu installieren:

go get github.com/360EntSecGroup-Skylar/excelize
  1. Excel-Datei lesen

Zuerst öffnen wir eine Excel-Datei mit dem Namen „test.xlsx“ und verwenden darin Sheet1 als Tabelle, die gelesen werden muss.

f, err := excelize.OpenFile("./test.xlsx")
if err != nil {
    fmt.Println(err)
    return
}
// 取得 Sheet1 表格中所有的行
rows, err := f.GetRows("Sheet1")
if err != nil {
    fmt.Println(err)
    return
}

Mit der GetRows-Methode können wir ganz einfach alle Zeilen in der Tabelle Sheet1 abrufen. Als nächstes können wir jede Datenzeile durchlaufen und den Wert jeder Zelle ausdrucken.

for i, row := range rows {
    for j, colCell := range row {
        fmt.Printf("(%d,%d) %s
", i+1, j+1, colCell)
    }
}
  1. Eine Excel-Datei schreiben

Ähnlich wie beim Lesen einer Excel-Datei öffnen wir zunächst eine Excel-Datei mit dem Namen „write.xlsx“ und wählen die zu schreibende Tabelle als Sheet1 aus.

f := excelize.NewFile()
// 创建一个名为 Sheet1 的表格
sheetIndex := f.NewSheet("Sheet1")
// 设置 Sheet1 表格为当前操作表格
f.SetActiveSheet(sheetIndex)

Jetzt haben wir eine neue Excel-Datei erstellt und eine Tabelle namens Sheet1 hinzugefügt. Als nächstes können wir die benötigten Daten in die Tabelle schreiben.

// 向 A1 单元格写入内容
f.SetCellValue("Sheet1", "A1", "姓名")
f.SetCellValue("Sheet1", "B1", "年龄")
f.SetCellValue("Sheet1", "C1", "性别")

// 写入数据行
f.SetCellValue("Sheet1", "A2", "张三")
f.SetCellValue("Sheet1", "B2", 26)
f.SetCellValue("Sheet1", "C2", "男")

f.SetCellValue("Sheet1", "A3", "李四")
f.SetCellValue("Sheet1", "B3", 28)
f.SetCellValue("Sheet1", "C3", "男")

f.SetCellValue("Sheet1", "A4", "小花")
f.SetCellValue("Sheet1", "B4", 24)
f.SetCellValue("Sheet1", "C4", "女")

Mit dem obigen Code haben wir die Daten erfolgreich in die Excel-Tabelle geschrieben. Schließlich müssen wir die Datei speichern, um sicherzustellen, dass die Daten beibehalten werden können.

err := f.SaveAs("./write.xlsx")
if err != nil {
    fmt.Println(err)
}
  1. Vollständiger Code

Hinweis: Dieser Beispielcode dient nur zu Demonstrationszwecken. Das zum Lesen und Schreiben von Dateien verwendete Tabellenformat muss entsprechend der tatsächlichen Situation angepasst werden.

Der vollständige Code lautet wie folgt:

package main

import (
    "fmt"
    "github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
    // 读取 Excel 文件
    f, err := excelize.OpenFile("./test.xlsx")
    if err != nil {
        fmt.Println(err)
        return
    }
    // 取得 Sheet1 表格中所有的行
    rows, err := f.GetRows("Sheet1")
    if err != nil {
        fmt.Println(err)
        return
    }
    // 遍历所有单元格的数据
    for i, row := range rows {
        for j, colCell := range row {
            fmt.Printf("(%d,%d) %s
", i+1, j+1, colCell)
        }
    }

    // 创建 Excel 文件
    f := excelize.NewFile()
    // 创建一个名为 Sheet1 的表格
    sheetIndex := f.NewSheet("Sheet1")
    // 设置 Sheet1 表格为当前操作表格
    f.SetActiveSheet(sheetIndex)

    // 向 A1 单元格写入内容
    f.SetCellValue("Sheet1", "A1", "姓名")
    f.SetCellValue("Sheet1", "B1", "年龄")
    f.SetCellValue("Sheet1", "C1", "性别")

    // 写入数据行
    f.SetCellValue("Sheet1", "A2", "张三")
    f.SetCellValue("Sheet1", "B2", 26)
    f.SetCellValue("Sheet1", "C2", "男")

    f.SetCellValue("Sheet1", "A3", "李四")
    f.SetCellValue("Sheet1", "B3", 28)
    f.SetCellValue("Sheet1", "C3", "男")

    f.SetCellValue("Sheet1", "A4", "小花")
    f.SetCellValue("Sheet1", "B4", 24)
    f.SetCellValue("Sheet1", "C4", "女")

    // 保存 Excel 文件
    err := f.SaveAs("./write.xlsx")
    if err != nil {
        fmt.Println(err)
    }
}
  1. Zusammenfassung

Anhand der obigen Codedemonstration können wir sehen, dass die Verwendung von Golang zum Implementieren von Lese- und Schreibvorgängen für Excel-Dateien sehr einfach und effizient ist. go-excelize ist eine leistungsstarke Bibliothek in der Golang-Community. Sie bietet viele Funktionen zur Verarbeitung von Excel-Dateien und kann in andere Bibliotheken integriert werden. Daher ist Golang zu einer sehr guten Wahl für die Verarbeitung von Excel-Dateien geworden. Ich hoffe, es kann jedem helfen.

Das obige ist der detaillierte Inhalt vonGolang implementiert Excel-Lesen und -Schreiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:golang string 转jsonNächster Artikel:golang string 转json