Maison  >  Article  >  développement back-end  >  golang implémente la lecture et l'écriture Excel

golang implémente la lecture et l'écriture Excel

王林
王林original
2023-05-13 10:04:373434parcourir

Alors que la demande de traitement de données devient de plus en plus importante, les données des tableaux Excel sont progressivement devenues un élément indispensable du travail et de la vie quotidienne. Dans le langage de programmation Golang, il existe également d'excellentes bibliothèques qui peuvent facilement lire et écrire des fichiers Excel. Cet article vous guidera étape par étape pour lire et écrire la version Golang des fichiers Excel.

  1. Installer la bibliothèque de traitement Excel

Pour réaliser les opérations de lecture et d'écriture de fichiers Excel, nous devons utiliser la bibliothèque Golang tierce, go-excelize. Exécutez la commande suivante pour installer la bibliothèque :

go get github.com/360EntSecGroup-Skylar/excelize
  1. Lire le fichier Excel

Tout d'abord, nous allons ouvrir un fichier Excel nommé "test.xlsx" et y utiliser Sheet1 comme tableau à lire.

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
}

Avec la méthode GetRows, nous pouvons facilement obtenir toutes les lignes du tableau Sheet1. Ensuite, nous pouvons parcourir chaque ligne de données et imprimer la valeur de chaque cellule.

for i, row := range rows {
    for j, colCell := range row {
        fmt.Printf("(%d,%d) %s
", i+1, j+1, colCell)
    }
}
  1. Écrire un fichier Excel

Semblable à la lecture d'un fichier Excel, nous ouvrons d'abord un fichier Excel nommé "write.xlsx" et sélectionnons le tableau à écrire sous la forme Sheet1.

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

Maintenant, nous avons créé un nouveau fichier Excel et ajouté un tableau nommé Sheet1. Ensuite, nous pouvons écrire les données requises dans le tableau.

// 向 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", "女")

Avec le code ci-dessus, nous avons réussi à écrire les données dans le tableau Excel. Enfin, nous devons enregistrer le fichier pour garantir que les données peuvent être conservées.

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

Remarque : cet exemple de code est uniquement à des fins de démonstration. Le format de tableau utilisé pour la lecture et l'écriture de fichiers doit être ajusté en fonction de la situation réelle.

Le code complet est le suivant :

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. Résumé

Grâce à la démonstration de code ci-dessus, nous pouvons voir qu'utiliser Golang pour implémenter des opérations de lecture et d'écriture sur des fichiers Excel est très simple et efficace. go-excelize est une bibliothèque puissante de la communauté Golang. Elle fournit de nombreuses fonctions pour traiter les fichiers Excel et peut être intégrée à d'autres bibliothèques. Par conséquent, Golang est devenu l’un des très bons choix pour traiter les fichiers Excel. J’espère qu’il pourra aider tout le monde.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:chaîne golang 转jsonArticle suivant:chaîne golang 转json