Golang プロセスがどのように優れているかについての詳細な説明

藏色散人
リリース: 2020-11-17 14:58:39
転載
5677 人が閲覧しました

以下は go languageチュートリアル コラムで、GolangExcel の処理方法を詳しく説明しています。友人の参考になれば幸いです。必要としている!

Golang プロセスがどのように優れているかについての詳細な説明

Golang に関するこれまでの記事は主に Golang の標準ライブラリに基づいていましたが、今日は xlsx ファイルの処理に使用できる Golang のオープンソース ライブラリを見ていきます。まず、パッケージをダウンロードします

go get github.com/tealeg/xlsx
ログイン後にコピー

簡単な例でこのパッケージの使用方法を見てみましょう この例では、主に列名の入力とテーブル内のその列のすべてのデータの表示を実装します。コードは次のとおりです:

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
}
ログイン後にコピー

まず main 関数を見てみましょう。main 関数は最初にコマンド ライン パラメータの検証を実行します。このプログラムを使用するには、2 つのパラメータを使用する必要があります。1 つは xlsx へのパスです。もう 1 つは使用するフォームの名前です。次に、xlsx ファイルと対応するフォームを開き、標準入力を介して列名を読み取り、対応するフォームで列名を見つけ、すべての行を走査して列のすべてのデータを取得します。ここでは、標準入力からデータを読み取り、対応する列インデックスを検索する 2 つの関数がカプセル化されています。

getStdinInput() 関数は、入力プロンプト ステートメントとしてパラメータを受け取り、スキャナに基づいて標準入力のテキストを取得します。

findColByTitle() 関数は、フォーム オブジェクトのポインターと列名という 2 つのパラメーターを渡します。ヘッダー行のすべての列をループして、一致する列インデックスを見つけて返します。

標準の xlsx ファイルを自分で作成できます。最初の行はタイトル行で、ユーティリティ プログラムでテストします。これまで Excel の処理に Python を使用していましたが、Golang の方が効率的だと感じています。

以上がGolang プロセスがどのように優れているかについての詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート