How Golang processes excel

藏色散人
Release: 2020-10-19 14:40:01
forward
2691 people have browsed it

The following column golang tutorial will introduce you to Golang's method of processing excel. I hope it will be helpful to friends in need!

How Golang processes excel

Previous articles about Golang were mainly explained based on Golang’s standard library. Today we will take a look at Golang’s An open source library that 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 converting all the items in that column in the table. The data is displayed. 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 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