この記事では、Golang に関する関連知識を紹介します。主に Golang を使用して Excel ドキュメントを生成する方法を紹介します。興味のある友人は以下を参照してください。すべての人に役立つことを願っています。
データに基づいて Excel ドキュメントを生成することは、非常に一般的な要件です。この記事では、Go の Excelize ライブラリを使用して Excel ドキュメントを生成する方法を紹介します一部の特定のシナリオでのコード実装も同様です。
Excelize ライブラリについて
Excelize
は、ISO/IEC 29500 国際規格 ECMA-376 に基づいた、Office Excel ドキュメントを操作するための Go 言語で書かれた基本ライブラリです。これを使用して、Microsoft Excel™ 2007 以降で作成されたスプレッドシート ドキュメントの読み取りと書き込みを行うことができます。 XLSX / XLSM / XLTM / データワークブックなどの複数のドキュメント形式をサポートします。さまざまなレポート プラットフォーム、クラウド コンピューティング、エッジ コンピューティング、その他のシステムに適用できます。このライブラリを使用するには、Go 言語バージョン 1.15 以降が必要です。
パフォーマンスの比較
次の図は、12800*50 プレーン テキスト行列を生成する場合のいくつかの主要なオープン ソース Excel ライブラリのパフォーマンスの比較を示しています (OS: macOS Mojave バージョン 10.14.4、CPU: 3.4) GHz Intel Core i5、RAM: 16 GB 2400 MHz DDR4、HDD: 1 TB)、Go、Python、Java、PHP、NodeJS を含む。
v2.4.0:
go get github.com/360EntSecGroup-Skylar/excelize/v2Excel ドキュメントの作成次のケースでは、Excel ドキュメントを作成し、
NewSheet メソッドを使用して新しい
Sheet2 ワークシートを作成しました。
Sheet1 はデフォルトで作成されるワークシートです。次に、
SetCellValue メソッドを使用して、
Sheet2 ワークシートの
A2 セルと
Sheet1 の B2
を設定します。セルの値を設定し、SetActiveSheet
メソッドを使用して Sheet2
ワークシートをデフォルトのワークシートとして設定し、最後に SaveAs
を呼び出します。データを Excel ドキュメントに書き込む方法: <pre class="brush:php;toolbar:false">package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize/v2"
)
func main() {
f := excelize.NewFile()
// 创建一个工作表
index := f.NewSheet("Sheet2")
// 设置单元格的值
f.SetCellValue("Sheet2", "A2", "Hello world.")
f.SetCellValue("Sheet1", "B2", 100)
// 设置工作簿的默认工作表
f.SetActiveSheet(index)
// 根据指定路径保存文件
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}</pre>
実際のシナリオの再現
ワークシートの作成
ワークシート名は大文字と小文字が区別されます:
index := f.NewSheet("Sheet2")
デフォルトで作成されたワークシートを削除します
デフォルトで作成された Excel ドキュメントには、
Sheet1 という名前のワークシートが含まれています。このデフォルトのワークシートは必要ない可能性があります。現時点では、このワークシートを削除できます。 <pre class="brush:php;toolbar:false">f.DeleteSheet("Sheet1")</pre>
セルを結合
Merge
Sheet1 ワークシート上の F1:I2
範囲内のセル: <pre class="brush:php;toolbar:false">excel.MergeCell("Sheet1", "F1", "I2")</pre>
セル スタイル
セルの背景色の設定など、セルのスタイルの設定は頻繁に行われます。
Excelize ライブラリには、セルのスタイルを設定する次の 2 つのメソッド (NewStyle
と #) が用意されています。 ## SetCellStyle):
// 通过给定的样式格式 JSON 或结构体的指针创建样式并返回样式索引。 // 请注意,颜色需要使用 RGB 色域代码表示。 style, err := f.NewStyle(`{ "border": [ { "type": "left", "color": "0000FF", "style": 3 }, { "type": "top", "color": "00FF00", "style": 4 }, { "type": "bottom", "color": "FFFF00", "style": 5 }, { "type": "right", "color": "FF0000", "style": 6 }, { "type": "diagonalDown", "color": "A020F0", "style": 7 }, { "type": "diagonalUp", "color": "A020F0", "style": 8 }] }`) if err != nil { fmt.Println(err) } err = f.SetCellStyle("Sheet1", "D7", "D7", style)
テキストの水平方向の中央揃え
テキストの水平方向の中央揃えには、Alignment
スタイル構造の使用が必要です:type Alignment struct { Horizontal string `json:"horizontal"` Indent int `json:"indent"` JustifyLastLine bool `json:"justify_last_line"` ReadingOrder uint64 `json:"reading_order"` RelativeIndent int `json:"relative_indent"` ShrinkToFit bool `json:"shrink_to_fit"` TextRotation int `json:"text_rotation"` Vertical string `json:"vertical"` WrapText bool `json:"wrap_text"` }
水平方向のセンタリングのみを設定する必要があります。
水平の値は center です。
style, err := f.NewStyle(`{"alignment":{"horizontal":"center"}}`) if err != nil { fmt.Println(err) } err = excel.SetCellStyle("Sheet1", "B1", "B1", style)
セルに単色の塗りつぶしを設定します。
セルを色で塗りつぶすために使用されます。 Fill
スタイル構造:type Fill struct { Type string `json:"type"` Pattern int `json:"pattern"` Color []string `json:"color"` Shading int `json:"shading"` }
スタイル構造
上記のスタイルを設定するコードから、border## がわかります。 # は配列、
alignment は Style
構造によって決定される構造です: <pre class="brush:php;toolbar:false">type Style struct {
Border []Border `json:"border"`
Fill Fill `json:"fill"`
Font *Font `json:"font"`
Alignment *Alignment `json:"alignment"`
Protection *Protection `json:"protection"`
NumFmt int `json:"number_format"`
DecimalPlaces int `json:"decimal_places"`
CustomNumFmt *string `json:"custom_number_format"`
Lang string `json:"lang"`
NegRed bool `json:"negred"`
}</pre> 関連する推奨事項:
Go ビデオ チュートリアル
以上がGolang が Excel ドキュメントを生成する方法を詳しく説明した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

テキストデータを処理するためのツールを提供し、基本的な文字列から高度な正規表現のマッチングにスプライシングするためのツールを提供するため、Goの「文字列」パッケージに注意する必要があります。 1)「文字列」パッケージは、パフォーマンスの問題を回避するために文字列をスプライスするために使用される結合関数など、効率的な文字列操作を提供します。 2)contensany関数などの高度な関数が含まれており、文字列に特定の文字セットが含まれているかどうかを確認します。 3)交換関数は、文字列のサブストリングを交換するために使用され、交換順序とケースの感度に注意を払う必要があります。 4)分割関数は、セパレーターに従って文字列を分割することができ、しばしば正規表現処理に使用されます。 5)使用するときは、パフォーマンスを考慮する必要があります。

GOでBYTESパッケージをマスターすると、コードの効率と優雅さを向上させることができます。 1)バイナーズパッケージは、バイナリデータの解析、ネットワークプロトコルの処理、およびメモリ管理に不可欠です。 2)bytes.bufferを使用して、バイトスライスを徐々に構築します。 3)BYTESパッケージは、バイトスライスの検索、交換、およびセグメント化の関数を提供します。 4)BYTES.READERタイプは、特にI/O操作でのバイトスライスのデータを読み取るのに適しています。 5)BYTESパッケージは、GoのGarbage Collectorと協力して機能し、ビッグデータ処理の効率を向上させます。

Goで「文字列」パッケージを使用して、文字列を操作できます。 1)文字列を使用して、文字列の両端で白文字を削除します。 2)文字列を使用して、指定された区切り文字に従って文字列をスライスに分割します。 3)文字列スライスを文字列から1つの文字列にマージします。 4)文字列を使用して、文字列に特定のサブストリングが含まれているかどうかを確認します。 5)文字列を使用して、グローバルな交換を実行します。使用するときは、パフォーマンスと潜在的な落とし穴に注意してください。

検索、分割、結合、およびバッファリングを提供するために、ビートレスリックマニピュレーションのために強力に効果的に効果的に効果的に効果的です

thealternativestogo'sbyteSpackageincludeStringspackage、bufiopackage、andcustomstructs.1)thestringspackagecanbeusedby byconvertingbytestostostringsand.2)TheBufiopackageisidealforhhnetlimagreatreamsofreamSoftaefftaefftaimefiditipry.3)

「バイト」パッケージを積極的に構成することは、lices、重要なもの、ネットワークプロトコル、およびfilei/o.itofferslargedatasets、readerforsimulatingstreamreading、およびjo inforffffishideの調整、およびバッファーフォーハンドリングラーゲットアセット、およびバッファリングリケートのfunctionsfunctionsfunctionslei/o

Go'sstringspackageiscialforefficientsmanipulation、offeringtoolslikestrings.split()、strings.join()、strings.replaceall()、andstrings.contains()


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
