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

<p align="center"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144042/9125b745-1fc6-33e0-3a19-7e1934abf95c.jpeg" width="360" alt="Go 言語スプレッドシートライブラリ：Excelize 2.8.1 がリリースされました" /></p>

Excelize は、純粋な Go で記述されたライブラリで、XLAM / XLSM / XLSX / XLTM / XLTX ファイルの読み書きを可能にする一連の関数を提供します。Microsoft Excel™ 2007 以降で生成されたスプレッドシートドキュメントの読み取りと書き込みをサポートします。高い互換性により複雑なコンポーネントをサポートし、大量のデータを含むワークシートからデータを生成または読み取るためのストリーミング API を提供します。このライブラリには Go バージョン 1.18 以降が必要です。

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

#### オープンソース

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

**ドキュメントリファレンス:** [xuri.me/excelize/ja](https://xuri.me/excelize/ja/)

## リリースノート

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

### 互換性のヒント

* アップグレード要件 Go 言語バージョンは 1.18 以降、依存関係パッケージ XXX のアップグレード用 `golang.org/x/net`
* `HeaderFooterOptions` 構造体フィールドの `AlignWithMargins` および `ScaleWithDoc` のデータ型をポインターとして変更します
* 未使用のエクスポートされたデータ構造 `ShapeColor` を削除します

### 新機能

* 新しいエクスポート関数 `SetCellUint` を追加
* すべての画像セルを取得するための新しいエクスポート関数 `GetPictureCells` を追加
* 条件付き書式スタイル定義を取得するための新しいエクスポート関数 `GetConditionalStyle` を追加
* ワークシートのヘッダーとフッターを取得するための新しいエクスポート関数 `GetHeaderFooter` を追加
* テーブルとピボットテーブルのスライサーを追加するための新しいエクスポート関数 `AddSlicer` を追加
* ピボット テーブルを取得するための新しいエクスポート関数 `GetPivotTables` を追加
* ピボット テーブルを削除するための新しいエクスポート関数 `DeletePivotTable` を追加
* ピボット テーブル名の指定をサポートするために、`PivotTableOptions` に新しい `Name` フィールドを追加します
* 新たに 7 個の数式関数をサポート: DBCS, SEARCH, SEARCHB, TEXT, TEXTAFTER, TEXTBEFORE と xlfn.ANCHORARRAY
* グラフの線の種類を指定するためのエクスポート `ChartLineType` 列挙を追加します
* `Chart` データ型に新しい `Border` フィールドを追加して、グラフ領域の境界線を設定します
* 線の種類を設定するために、`ChartLine` タイプに新しい `Type` フィールドを追加します
* 新しいエクスポートされたソース関係と名前空間 `NameSpaceSpreadSheetXR10`, `ContentTypeSlicer`, `ContentTypeSlicerCache`, および `SourceRelationshipSlicer` を追加します
* 新しいエクスポートされた拡張 URI `ExtURIPivotCacheDefinition` を追加します
* 定義名、テーブル名、またはピボット テーブル名にドット文字を使用できるようにする
* テーブルを削除するときにテーブル範囲内のすべてのセルの値を保持する
* 分数形式コードを使用したセル値の形式のサポート
* 生成されるワークブックのサイズを削減し、潜在的なセキュリティ問題を解決するために、画像を削除するときに内部的にワークブックから画像ファイルを削除することをサポートします
* コメントボックスの高さと幅の設定をサポート
* 条件付き書式設定、データ検証、定義名、描画オブジェクト、数式参照、列/行の挿入/削除に関する揮発性依存関係の更新をサポートします
* 6 種類の新しい条件付き書式設定タイプをサポート: テキスト、空白、空白なし、エラー、エラーなし、期間
* 複数のダッシュ算術記号を使用した式の計算をサポート
* コピー条件付きフォーマットと重複行のデータ検証をサポート
* `SetRowHeight` 関数を使用するときに高さの値が -1 の場合、カスタム行の高さの設定解除をサポートします
* 無効な行の高さの値が指定された場合 `SetRowHeight` 関数はエラーを返します
* `AddChart` 関数は、グラフのデータ ラベルの位置の設定をサポートします
* `AddChart` 関数は、チャート領域、プロット領域、メーカーの単色または透明な塗りつぶしの設定をサポートし、`Chart`、`ChartPlotArea`、および `ChartMarker` データ型に新しいフィールド `Fill` を追加します
* `AddChart` 関数は、チャート軸のフォントファミリー、サイズ、およびストライクスタイルの設定をサポートします
* `ChartSeries` データ型に新しいフィールド `DataLabelPosition` を追加し、グラフ シリーズ データ ラベルの位置の設定をサポートします
* `Chart` データ型に新しいフィールド `BubbleSize` を追加し、バブル チャートまたは 3D バブル チャートのすべてのデータ シリーズでのバブル サイズの設定をサポートします
* 新しいエクスポート `ChartDataLabelPositionType` データ タイプを追加
* `GetPictureCells` および `GetPictures` 関数は、Kingsoft WPS&trade; Office によって作成された埋め込みセル画像の取得をサポートしています
* `SetConditionalFormat` 関数は、複数のセル範囲を使用した条件付き書式設定をサポートします
* ワークシートの名前を変更するときに、定義された名前の参照を更新するサポート
* 新しい `GetBaseColor` 関数のサポートを追加して、優先される 16 進カラー コードを取得します
* 計算エンジンは日付と数式タイプのセルをサポートします
* セル値読み取り関数は、`OpenReader` の `Options` 設定を継承します

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

* 絶対パス描画部分の互換性を向上
* ワークブックの内部タブ比率プロパティ値の互換性を向上
* 空のカスタム数値形式コードとの互換性を向上
* デフォルトのテーマパーツ名前空間をサポートしていないビューアとの互換性を向上させます
* 削除セルのコメント形状の KingSoft WPS&trade; Office との互換性を向上
* ソートされた内部パーツパスを使用してワークブックを保存すると、同一に作成されたワークブックのハッシュチェックサムが同じになります

### 問題の修正

* MID および MIDB 数式関数の num_chars 引数のチェックを追加し、負の数を指定した場合のパニックを防止します
* LEN, LOWER, PROPER, REPT, UPPER, IF 数式関数で数値引数を使用した空の計算結果を修正しました
* 場合によっては数式計算関数 CHITEST および MMULT がパニックになる問題を修正
* v2.8.0 の回帰バグ、印刷領域の設定に関するエラー、および組み込みの特別に定義された名前を使用したタイトルの印刷を修正しました
* v2.8.0 の回帰バグ、内部インデックス付きカラーおよび MRU カラー スタイル パーツとの互換性を向上させることによって生成された破損したワークブックを修正しました
* v2.8.0 のリグレッションバグを修正。数値形式コードの適用結果が空だった
* v2.7.1 回帰バグを修正。バブルまたは 3D バブル チャートでバブルが非表示になる
* ローカルシート ID に nil ポインタガードを追加することで `AutoFilter` のパニックを修正しました
* 場合によってはテーブルを追加するときに生成される破損したワークブックを修正
* 不正な時刻数値形式の結果を修正
* 数式文字列セル値の取得をサポート
* 単一のテーブルセルを含むワークブックで生成される誤ったテーブル ID を修正
* 場合によってはコンテンツ タイプで欠落している関係部分を修正
* 場合によっては不足しているリテラル トークンを修正するために数値形式パーサーをアップグレードします
* 組み込みの zh-cn および zh-tw 言語の数値形式を更新
* 割り当てられた間違ったカスタム数値形式 ID を修正する
* テーブルの範囲を削除して再度作成することによる更新が機能しない問題を修正しました
* ストリーム リーダーの一時ファイルをクリアできないという潜在的な問題を修正
* 数式の計算結果が正しくない場合があるのを修正
* セル値の取得時の同時実行競合状態を修正
* スタイル定義の取得時に欠落しているいくつかの形式を修正
* 数値形式の科学表記法のゼロフィルの問題を修正
* `r` 属性のない内部行要素を持つワークブックの読み取り時のパニックを修正
* インラインリッチテキストセルの取得時に `GetCellRichText` がエラーを返す問題を修正
* 場合によっては設定されたセル値の無効な共有文字列テーブル インデックスを修正
* 平均以上のルールを持たない条件付きフォーマットを取得する際の `GetConditionalFormats` パニックを修正
* 行の削除時にマージされたセルを誤って調整する問題を修正
* `SetConditionalFormat` 関数が誤った複数の条件付きフォーマット ルールの優先順位を作成する問題を修正しました
* `GetConditionalFormats` 関数がグラデーション データ バー ルールを返さない問題を修正しました
* 間違った `DecimalPlaces` フィールド値を返すように `GetStyle` または `GetConditionalStyle` 関数を修正しました
* `RawCellValue` を有効にすると、`CalcCellValue` 関数が生の値を返さない問題を修正しました

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

* ピボットテーブルと画像の追加と削除のパフォーマンスが向上しました
* 行とセルをトリミングしてメモリ消費を削減します

### その他

* Go Modules はモジュールの更新に依存しています
* 単体テストとドキュメントの更新
* 簡体字中国語、英語、フランス語、ロシア語、日本語、韓国語、アラビア語、ドイツ語、スペイン語を含む多言語ドキュメントサイトの更新
* [Slack](https://join.slack.com/t/xuri/shared_invite/zt-eriqdkeo-wV04zcCdBiiZveFgY86Wzw)、[Telegram 群组](https://t.me/excelize) チャンネルに参加して、コミュニティの他のメンバーに会いにようこそ