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

![Go 言語スプレッドシートライブラリ：Excelize 2.6.0 がリリースされました](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144042/638b0c2d-0c22-396d-1c1b-090b83ef4f35.png)


Excelize は、純粋な Go で記述されたライブラリで、XLAM / XLSM / XLSX / XLTM / XLTX ファイルの読み書きを可能にする一連の関数を提供します。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/)

* 発売日: 2022年4月11日
* GitHub Release: [https://github.com/xuri/excelize/releases/tag/v2.6.0](https://github.com/xuri/excelize/releases/tag/v2.6.0)

## リリースノート

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

### 互換性のヒント

* エクスポートされた定数の名前を `NameSpaceDublinCoreMetadataIntiative` から `NameSpaceDublinCoreMetadataInitiative` に変更してタイプミスを確認します
* エクスポートされた変数 `ErrUnsupportEncryptMechanism` の名前を `ErrUnsupportedEncryptMechanism` に変更します
* エクスポートされた変数 `ErrDataValidationFormulaLenth` の名前を `ErrDataValidationFormulaLength` に変更します
* エクスポートされた変数 `ErrDefinedNameduplicate` の名前を `ErrDefinedNameDuplicate` に変更します
* エクスポートされた変数 `XMLHeaderByte` を削除します
* 2 番目の役に立たないパラメータ `isCurrentSheet` を削除すると、関数 `SetSqrefDropList` のエラーが返されます
* 行イテレータの `TotalRows` を削除します

### 新機能

* `ProtectSheet` は、指定アルゴリズム（XOR、MD4、MD5、SHA1、SHA256、SHA384、および SHA512）で保護シートをサポートするようになりました
* `UnprotectSheet` は、パスワード検証でシート保護を削除するための 2 番目のオプションのパスワードパラメータの指定をサポートするようになりました
* 新しいサポート 71 の数式関数: AVERAGEIFS, BETADIST, BETA.DIST, BETAINV, BETA.INV, BINOMDIST, BINOM.DIST, BINOM.DIST.RANGE, BINOM.INV, CHIINV, CHITEST, CHISQ.DIST, CHISQ.DIST.RT, CHISQ.INV, CHISQ.INV.RT, CHISQ.TEST, CONFIDENCE.T, CORREL, COVAR, COVARIANCE.P, CRITBINOM, ERROR.TYPE, EXPON.DIST, EXPONDIST, F.DIST, F.DIST.RT, FDIST, F.INV, F.INV.RT, FINV, FORMULATEXT, F.TEST, FTEST, GAMMA.DIST, GAMMADIST, GAMMA.INV, GAMMAINV, GAMMALN.PRECISE, GAUSS, HOUR, HYPGEOM.DIST, HYPGEOMDIST, INDIRECT, LOGINV, LOGNORM.DIST, LOGNORMDIST, LOGNORM.INV, MODE, MODE.MULT, MODE.SNGL, NEGBINOM.DIST, NEGBINOMDIST, PHI, SECOND, SERIESSUM, SUMIFS, SUMPRODUCT, SUMX2MY2, SUMX2PY2, SUMXMY2, T.DIST, T.DIST.2T, T.DIST.RT, TDIST, TIMEVALUE, T.INV, T.INV.2T, TINV, T.TEST, TTEST, TYPE
* ワークブックを保存するときにファイル拡張子を確認してください
* ブックビューモードとルーラー表示設定をサポートする
* 数値形式のサポートを改善し、カスタムの日付と時刻の数値形式とテキストプレースホルダーのサポートに NFP（number format parser）依存関係モジュールを導入し、19 の言語（アフリカ、バングラ、中国語、英語、フランス語、ドイツ語、オーストリア、アイルランド語、イタリア語、ロシア語、スペイン語、タイ語、チベット語、トルコ語、ウェールズ語、ウォロフ、ショサ、イー、ズールー）数値形式のサポート, 関連する問題 #660, #764, #1093, #1112, #1133
* ブックの `FilterPrivacy` プロパティと `CodeName` プロパティの設定と取得をサポートする新しいエクスポートされた関数 `SetWorkbookPrOptions` と `GetWorkbookPrOptions` は、VBA プロジェクトをワークブックに追加する際の制限を解決します, 関連する問題 #1148
* 数式エンジンは、中置演算子表記の後、パラメータなしの数式関数を使用した計算をサポートするようになりました
* ブールデータ型のセル値の読み取りのサポート
* `AddChart` 関数でドーナツチャートを作成するときに設定された穴のサイズをサポート, 関連する問題 #1172
* 4 つのエラー `ErrPasswordLengthInvalid`、`ErrUnsupportedHashAlgorithm`、`ErrUnsupportedNumberFormat`、`ErrWorkbookExt` をエクスポートして、ユーザーがさまざまなタイプのエラーに対して異なる行動をとれるようにします

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

* LibreOffice との互換性を改善し、シート名にスペースが含まれている場合に自動フィルターが LibreOffice で機能しない問題を修正しました, 関連する問題 #1122
* 代替コンテンツとの互換性を改善し、ワークブック、ワークシート、および drawingML の代替コンテンツの保持をサポートします
* ページ設定 DPI フィールドとの互換性を改善します

### 問題の修正

* スプレッドシートを再保存した後、ワークシートの欠落しているページ設定を修正, 関連する問題 #1117
* 場合によっては、操作後にマージされたセルが更新されない問題を修正する
* 太字やその他のスタイルが欠落する原因となるスタイル解析の問題を修正しました, 関連する問題 #1119
* 場合によっては、XLAM / XLSM / XLTM / XLTX 拡張子として保存するときに破損したファイルを修正します
* マージ範囲のセルスタイルを修正し、セルが継承列/行スタイルをサポートするようにします, 関連する問題 #1129
* セルスタイルの取得時に返される誤ったスタイル ID を修正する場合があります
* 誤った組み込みの数値形式を修正: 42
* 場合によっては、解析の小数精度の問題が修正されました
* `SetCellDefault` は数値以外の値をサポートします, 関連する問題 #1139
* スプレッドシートとして保存するときに、シートタブの表示設定が欠落していた場合がある問題を修正しました, 関連する問題 #1160
* ネストされた数式の計算結果エラーを修正, 関連する問題 #1164
* x86 および arm64 プロセッサ（CPU）アーキテクチャでの数式計算結果の精度の問題と一貫性のない結果精度の一部を修正しました
* これにより、科学的記数法の解析の問題が修正される場合があります
 * 値が 0 のときにチャート軸の最大値と最小値が機能しなかった問題を修正します

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

* 以前にリリースされたバージョンに基づいてストリーミング読み取りパフォーマンスを改善し、大きなデータスプレッドシートを読み取るためのメモリ使用量を最大で約 50％ 削減し、行のイテレータのGC時間を 80％ 削減します

### その他

* Go Modules はモジュールの更新に依存しています
* 単体テストとドキュメントの更新
* 簡体字中国語、英語、フランス語、ロシア語、日本語、韓国語、アラビア語、ドイツ語、スペイン語を含む多言語ドキュメントサイトの更新