Home > Backend Development > Golang > Detailed explanation of how Golang processes excel

Detailed explanation of how Golang processes excel

藏色散人
Release: 2020-11-17 14:58:39
forward
5715 people have browsed it

The following is the go languagetutorial column to explain in detailGolanghow to process excel. I hope it will be helpful to friends in need!

Detailed explanation of how Golang processes excel

Previous articles about Golang were mainly based on Golang’s standard library. Today we will take a look at an open source library of Golang, which can be used to process xlsx files. First download the package

go get github.com/tealeg/xlsx
Copy after login

Let’s see how to use this package through a simple example. This example mainly implements inputting column names and displaying all the data in that column in the table. The code is as follows:

package main

import (
	"bufio"
	"fmt"
	"os"

	"github.com/tealeg/xlsx"
)

func main() {
	if len(os.Args) != 3 {
		fmt.Println("Usage: xlsx pathname sheetname")
		os.Exit(1)
	}

	xlsxFile, err := xlsx.OpenFile(os.Args[1])
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	sheet := xlsxFile.Sheet[os.Args[2]]
	if sheet == nil {
		fmt.Println("表单名不存在")
		os.Exit(1)
	}

	for {
		title := getStdinInput("请输入列名:")
		if title == "" {
			fmt.Println(title)
			continue
		}

		titleColIndex := findColByTitle(sheet, title)
		if titleColIndex == -1 {
			fmt.Println("列名不存在")
			continue
		}

		rowLen := len(sheet.Rows)
		result := []string{}
		for rowIndex := 1; rowIndex < rowLen; rowIndex++ {
			content := sheet.Cell(rowIndex, titleColIndex).String()
			result = append(result, content)
		}

		fmt.Println(result)
	}
}

func getStdinInput(hint string) string {
	fmt.Print(hint)
	scanner := bufio.NewScanner(os.Stdin)
	if scanner.Scan() {
		return scanner.Text()
	}

	return ""
}

func findColByTitle(sheet *xlsx.Sheet, title string) int {
	titleRow := sheet.Rows[0]
	for titleIndex, col := range titleRow.Cells {
		if col.String() == title {
			return titleIndex
		}
	}

	return -1
}
Copy after login

Let’s look at the main function first. The main function first performs command line parameter verification. To use this program, you need to use two parameters, one is the path to xlsx, and the other is the name of the form to be used. Then open the xlsx file and the corresponding form, read the column name through standard input, then find the column name in the corresponding form, and obtain all the data of the column by traversing all rows. Two functions are encapsulated here to read data from standard input and find the corresponding column index.

The getStdinInput() function receives a parameter as the input prompt statement. This function obtains the text of the standard input based on the scanner.

The findColByTitle() function passes in two parameters: the pointer of the form object and the column name. By looping through all the columns in the header row, find the matching column index and return it.

You can create a standard xlsx file yourself. The first line is the title line, and then test it with a utility program. I have used Python for Excel processing before, but I feel that Golang is more efficient.

The above is the detailed content of Detailed explanation of how Golang processes excel. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template