Go 言語スプレッドシートライブラリ：Excelize 2.4.1 がリリースされました

<center><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144042/4d267a7a-a8af-c9b5-3d78-6de8939699b9.jpeg" alt="Go 言語スプレッドシートライブラリ：Excelize 2.4.1 がリリースされました" width="500"></center>

[Excelize](https://github.com/xuri/excelize) は、純粋な Go で記述されたライブラリで、XLSX / XLSM / XLTM ファイルの読み書きを可能にする一連の関数を提供します。Microsoft Excel&trade; 2007 以降で生成されたスプレッドシートドキュメントの読み取りと書き込みをサポートします。 高い互換性により複雑なコンポーネントをサポートし、大量のデータを含むワークシートからデータを生成または読み取るためのストリーミング API を提供します。

場合によっては、既存の Excel ドキュメントコンテンツの読み込み、新しい Excel ドキュメントの作成、既存のドキュメント（テンプレート）に基づく新しい Excel ドキュメントの生成、Excel ドキュメントへのイメージの挿入、チャートなどの Excel ドキュメントをプログラムで操作する必要があります。 テーブルなどの要素。プラットフォーム間でこれらの操作を実装する必要がある場合があります。Excelize はこれらのニーズを容易に満たすことができます。

#### オープンソース

**GitHub:** [github.com/xuri/excelize](https://github.com/xuri/excelize)

**Doc:** [xuri.me/excelize/ja](https://xuri.me/excelize/ja/)

* 発売日: 2021年8月2日
* GitHub Release: [https://github.com/xuri/excelize/releases/tag/v2.4.1](https://github.com/xuri/excelize/releases/tag/v2.4.1)

## リリースノート

このバージョンでの最も注目すべき変更点は次のとおりです:

### 互換性のヒント

Goモジュールのインポートパスを `github.com/xuri/excelize/v2` に変更します

### 新機能

* ストリーミングモードでの列幅の設定のサポート、関連する問題 [#625](https://github.com/xuri/excelize/issues/625)
* ストリーミングモードでのマージセルのサポート、関連する問題 [#826](https://github.com/xuri/excelize/issues/826)
* 新しいサポート 2 数式関数：BESSELK、BESSELY
* 数式計算エンジンが定義済みの名前参照をサポートするようになりました
* チャート xAxis および yAxis の無効化オプションを追加
* 関数 [`AddPivotTable`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.AddPivotTable) は、定義された名前による参照ソースデータ範囲をサポートし、関連する問題 [#856](https://github.com/xuri/excelize/issues/856)
* 次の関数は並行性の安全性になりました。関連する問題 #861
  * [`AddPicture`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.AddPicture) と [`GetPicture`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.GetPicture) の同時実行性は、ワークシートから画像を挿入または取得します
  * [`Rows`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.Rows) と [`Cols`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.Cols) の同時実行性は行と列を繰り返します
  * [`SetSheetRow`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.SetSheetRow) 同時実行はワークシートの行のセルを設定します
  * [`SetCellStyle`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.SetCellStyle) 同時実行セットセルスタイル
  * [`NewStyle`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.NewStyle) の同時実行性がスタイルを作成します
* 24 関数のエラーメッセージをエクスポートします

### 互換性を向上させる

* デフォルトの XML 名前空間属性の互換性を改善し、場合によっては生成された破損ファイルを修正します
* 非標準のページ設定属性との互換性を改善し、開いているスプレッドシートを修正できない場合がありました
* 共有文字列テーブルに count 属性を追加します
* セル値を時間とともに設定する場合の UTC タイムゾーン要件を削除、関連する問題 [#409](https://github.com/xuri/excelize/issues/409)
* エスケープリテラル文字列のXML制御文字との互換性が向上します
* エクスポートされたフィールドの名前を `File.XLSX` から `File.Pkg` に変更します
* シート名の変更では、`NewSheet`、`GetSheetIndex`、`DeleteSheet`、の大文字と小文字は区別されません，関連する問題 [#873](https://github.com/xuri/excelize/issues/873)
* 条件付き形式とピボットテーブルの互換性の問題を修正します，関連する問題 [#883](https://github.com/xuri/excelize/issues/883)
* ページレイアウトの無効なホームページ番号属性との互換性を改善します
* [`SetCellRichText`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.SetCellRichText) 增加字符数上限检查并修复保留字符丢失问题

### 問題の修正

* 場合によっては 12/24 時間形式の異常な解析の問題を修正します，関連する問題 [#823](https://github.com/xuri/excelize/issues/823) と [#841](https://github.com/xuri/excelize/issues/841)
* 修正により、[`GetComments`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.GetComments) でコメントを取得できない場合があります。関連する問題 [#825](https://github.com/xuri/excelize/issues/825)
* 設定を修正し、注釈を取得するときに、複数の注釈作成者をサポートします。関連する問題 [#829](https://github.com/xuri/excelize/issues/829) と [#830](https://github.com/xuri/excelize/issues/830)
* ワークシートを再作成するときに無効なファイルパスと重複する名前空間を修正し、関連する問題 [#834](https://github.com/xuri/excelize/issues/834)
* `showOutlineSymbols`、`summaryBelow`、`summaryRight` 属性の値が `false` の場合にセットアウトライン属性が機能しない問題を修正
* [`GetRows`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.GetRows) によってワークシートの末尾の空の行を避け、問題 [#842](https://github.com/xuri/excelize/issues/842) を解決します
* 行の値を取得するときに欠落していた数式セルを修正し、問題 [#855](https://github.com/xuri/excelize/issues/855) を解決しました
* IF 関数の内部と外部で比較が失敗する問題を修正し、問題 [#858](https://github.com/xuri/excelize/issues/858) を解決しました
* [`GetRowHeight`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.GetRowHeight) が実際に次の行の高さを取得するように修正
* 場合によっては異常なスコープ解決によるカスタム名の誤った取得と削除の問題を修正します，関連する問題 [#879](https://github.com/xuri/excelize/issues/879)
* 定義された名前の属性 `LocalSheetID` は `SheetID` ではなく `SheetIndex` と等しくなければなりません
* 列スタイルを設定するときに欠落していた各セルのスタイルの設定を修正，関連する問題 [#467](https://github.com/xuri/excelize/issues/467)
* ピボットテーブルの作成時に `PivotTableRange`として誤った範囲が指定された場合のパニックを防止します
* 数値の読み取り精度が異常な場合がある問題を修正，関連する問題 [#848](https://github.com/xuri/excelize/issues/848) と [#852](https://github.com/xuri/excelize/issues/852)
* データ検証ルールを設定すると、XML 文字エスケープ処理が行われなかったために、ビルド ドキュメントが破損する問題を修正します，関連する問題 [#971](https://github.com/xuri/excelize/issues/971)
* 設定データ検証ルールの長さのチェックが不正確になる問題を修正します，関連する問題 [#972](https://github.com/xuri/excelize/issues/972)
* 時間または日付の数値形式のセルを読み取るときに CPU リソースの使用率が高すぎる場合に、時間解決例外が原因で修正されました，関連する問題 [#974](https://github.com/xuri/excelize/issues/974)
* カスタム数値形式が日付の場合、月の解決が失敗する問題を修正します

### パフォーマンスの最適化

* [`Save`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.Save) と [`SaveAs`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.1#File.SaveAs) の冗長メモリを約19%削減

### その他

* 潜在的なコードセキュリティの問題を修正 CWE-190 および CWE-681
* Go Modules はモジュールの更新に依存しています
* 単体テストとドキュメントの更新
* ユニットテスト用に GitHub Action を使用
* 簡体字中国語、英語、フランス語、ロシア語、日本語、韓国語、アラビア語、ドイツ語、スペイン語を含む[多言語ドキュメントサイト](https://xuri.me/excelize)の更新