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

<center><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144042/8038f68b-4cd3-ca1a-ab23-d9ca1e8bb483.png" alt="Go 言語スプレッドシートライブラリ：Excelize 2.4.0 がリリースされました" 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年4月19日
* GitHub Release: [https://github.com/xuri/excelize/releases/tag/v2.4.0](https://github.com/xuri/excelize/releases/tag/v2.4.0)

## リリースノート

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

### 互換性のヒント

このバージョンにアップグレードするには、Go 言語バージョンが 1.15 を超える必要があります。

### 新機能

* 指定されたシート名に基づいてリッチ テキストの取得をサポートする新しい [`GetCellRichText`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.0#File.GetCellRichText) API が追加されます
* [`SetPageLayout`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.0#File.SetPageLayout) と [`GetPageLayout`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.0#File.GetPageLayout) ページ印刷のズーム、モノクロ印刷の指定、開始ページ番号の設定と取得がサポートされるサービスが追加された
* [`SetSheetPrOptions`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.0#File.SetSheetPrOptions) と [`GetSheetPrOptions`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.0#File.GetSheetPrOptions) シート タブの色の設定と取得がサポートされるサービスが追加しました
* [`SetCellHyperLink`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.0#File.SetCellHyperLink) ヒント テキストと表示テキストの設定をサポートします，関連する問題 [#790](https://github.com/xuri/excelize/issues/790)
* ピボットテーブルを作成するときの `ShowError` オプションのサポートが追加されました
* ストリーミング API では、セルの数式の設定がサポートされています, 関連する問題 [#625](https://github.com/xuri/excelize/issues/625)
* 数式計算エンジンのサポートは演算子と等しくない
* 入れ子になった数式関数で、セル参照を引数として使用する機能が追加された
* 系列の各データ マーカーの色が異なることを指定するサポート
* 新しいサポート 152 数式関数: ATAN, AVERAGE, AVERAGEA, BESSELI, BESSELJ, BIN2DEC, BIN2HEX, BIN2OCT, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, CHAR, CHOOSE, CLEAN, CODE, COLUMN, COLUMNS, COMPLEX, CONCAT, CONCATENATE, COUNT, COUNTBLANK, CUMIPMT, CUMPRINC, DATE, DATEDIF, DB, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DOLLARDE, DOLLARFR, EFFECT, ENCODEURL, EXACT, FALSE, FIND, FINDB, FISHER, FISHERINV, FIXED, FV, FVSCHEDULE, GAMMA, GAMMALN, HARMEAN, HEX2BIN, HEX2DEC, HEX2OCT, HLOOKUP, IF, IFERROR, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN, IPMT, IRR, ISTEXT, ISPMT, KURT, LARGE, LEFT, LEFTB, LEN, LENB, LOOKUP, LOWER, MAX, MID, MIDB, MIN, MINA, MIRR, N, NOMINAL, NORM.DIST, NORMDIST, NORM.INV, NORMINV, NORM.S.DIST, NORMSDIST, NORM.S.INV, NORMSINV, NOT, NOW, NPER, NPV, OCT2BIN, OCT2DEC, OCT2HEX, PDURATION, PERCENTILE.INC, PERCENTILE, PERMUT, PERMUTATIONA, PMT, POISSON.DIST, POISSON, PPMT, PROPER, QUARTILE, QUARTILE.INC, REPLACE, REPLACEB, REPT, RIGHT, RIGHTB, ROMAN, ROW, ROWS, SHEET, SKEW, SMALL, STDEV, STDEV.S, STDEVA, SUBSTITUTE, T, TODAY, TRIM, TRUE, UNICHAR, UNICODE, UPPER, VAR.P, VARP, VLOOKUP

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

* [`SetCellValue`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.0#File.SetCellValue)  設定セルの値が `nil` を値として呼び出すと、セルに空白の文字列が設定され、代わりに NULL 値が設定されなくなる，関連する問題 [#756](https://github.com/xuri/excelize/issues/756)
* 内部処理セルの塗りつぶしの色スタイルを削除するときに冗長な XML オプションの NULL 値解決 ID を削除します
* Google Sheets オフライン ブラウザ拡張機能アプリとの互換性を高める，関連する問題 [#769](https://github.com/xuri/excelize/issues/769)
* Apache OpenOffice アプリケーションとの互換性を高めるには、フィルタに対応する名前に絶対参照を使用します，関連する問題 [#776](https://github.com/xuri/excelize/issues/776)
* ストリーミング解決ワークシート中に XML ラベル クローズ イベントの処理を増やし、行/列反復子の読み取りパフォーマンスを向上させ、一部の場合の読み取り行数の誤りを修正します
* ブック内のワークシート ドキュメントの相対パスを使用する互換性が向上します
* 重複するリッチ テキスト スタイルの作成は避ける，関連する問題 [#787](https://github.com/xuri/excelize/issues/787)
* ブック内のワークシート ドキュメントの絶対パスと Windows ディレクトリ区切り記号との互換性が向上します

### 問題の修正

* 数値丸め精度の問題を修正しました [#764](https://github.com/xuri/excelize/issues/764)
* ワークシート フィールドの解決順序を追加および調整して、ドキュメントの破損を修正します [#766](https://github.com/xuri/excelize/issues/766)
* `COTH` 双曲線余接三角関数の計算に誤りがある問題を修正しました
* 数式計算チェーンは、ワークシートの関連処理を増やし、コピーされた行が部分的に発生するドキュメントの破損を修正します，関連する問題 [#774](https://github.com/xuri/excelize/issues/774)
* シートを削除するときに、名前の処理を増やします，関連する問題 [#775](https://github.com/xuri/excelize/issues/775)
* 組み込み `newFills` と `parseToken` サークルが複雑すぎて高すぎる問題を修正しました
* ワークシートの既定のカスタム行の高さチェックを修正します
* ワークシート内のすべての結合セルをキャンセルすると、ドキュメントが破損する問題を修正します, 関連する問題 [#782](https://github.com/xuri/excelize/issues/782)
* フィルター条件が部分的に欠落している問題を修正します
* ブックにグラフ シート、ダイアログ シートが含まれている場合に [`UpdateLinkedValue`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.0#File.UpdateLinkedValue) でエラーが発生する問題を修正します
* [`GetColWidth`](https://pkg.go.dev/github.com/xuri/excelize/v2@v2.4.0#File.GetColWidth) が既定の列幅エラーを返す場合の問題を修正します
* Excel スプレッドシート アプリケーションを使用して作成したピボットテーブルにタイムラインとスライサーを追加できない問題を修正します，関連する問題 [#804](https://github.com/xuri/excelize/issues/804)
* 名前を設定するとき、内部の `localSheetId` プロパティは `sheetIndex` を使用し、間違ったワークシートインデックスの使用法を修正します
* 場合によっては、保存後にドキュメントセルのロックされた属性または非表示の属性が失われる可能性があるという問題を修正します，関連する問題 [#809](https://github.com/xuri/excelize/issues/809)
* ストリーミングがデータを書き込んだ後に通常の API を呼び出すと、ストリーミング書き込みが失われる問題を修正します，関連する問題 [#813](https://github.com/xuri/excelize/issues/813)
* 負の値の系列の欠損グラフの色の問題を修正します

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

* 数値精度処理速度の向上

### その他

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