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

![Go 言語スプレッドシートライブラリ：Excelize 2.9.0 がリリースされました](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144042/49bd24c6-1ee2-5a4c-8e48-451a76ec9532.jpeg)

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/)

### リリースノート

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

### 互換性のヒント

* `ConditionalFormatOptions` 構造体フィールド `Format` のデータ型をポインターとして変更します

### 新機能

* 新しい関数 `DeleteSlicer` と `GetSlicers` を追加
* ワークブック内のシートの順序変更をサポートする新しい関数 `MoveSheet` を追加しました
* `GraphicOptions` データ型のサポートに新しい `AutoFitIgnoreAspect` フィールドを追加し、セルを画像で塗りつぶし、そのアスペクト比を無視します
* チャートのラベル位置を設定するための `ChartAxis` データ型サポートに新しい `TickLabelPosition` フィールドを追加します
* `PivotTableField` データ型に新しいフィールド `ShowAll`、`InsertBlankRow`、`NumFmt` を追加します
* `PivotTableOptions` データ型に新しいフィールド `ClassicLayout`、`FieldPrintTitles`、`ItemPrintTitles` を追加します
* 2 つの新しいエクスポート列挙型 `ChartTickLabelPositionType` と `PictureInsertType` を導入します
* 新しくエクスポートされた `ChartLineUnset` 列挙値を導入
* 4 つの定数 `ExtURIDataField`、`ExtURIPivotField`、`ExtURIPivotFilter`、`ExtURIPivotHierarchy` を導入します
* 新しいエクスポートされたエラー変数 `ErrPivotTableClassicLayout` を導入
* `MergeCell` 関数は、セルを結合するときにスレーブセルの値をクリアすることをサポートします
* `AddDataValidation`、`DeleteDataValidation`、`GetCellStyle`関数は並行処理をサポートします
* `GetDataValidations` 関数は、拡張リストに保存されているデータ検証の取得をサポートします
* `SetSheetName` 関数は大文字と小文字の区別をサポートします
* `GetPictureCells` および `GetPictures` 関数は、IMAGE 数式関数によって挿入されたセル画像と画像の絶対パスの取得をサポートします
* `GraphicOptions` データ型のサポートに新しい `AutoFitIgnoreAspect` フィールドを追加し、セルを画像で塗りつぶし、そのアスペクト比を無視します
* `SetCellHyperLink` 関数は、`None` リンクタイプによるハイパーリンクの削除をサポートします
* `AddChart` 関数は同じタイプのコンボチャートの作成をサポートします
* `AddChart` 関数は散布図の線の種類の設定をサポートします
* `AddPivotTable` 関数でピボットテーブルを作成するときに、ピボットテーブルのデータ範囲内の列ヘッダーセルが空の場合、エラーが返されます
* 言語/場所タグと ID を使用して数値書式式を適用するためのサポートを追加
* 時間と期間のセル値に数値形式を適用するためのサポートを追加
* 新しいサポート数式機能: DOLLAR

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

* 適用数値形式の互換性を向上し、配置付き適用数値形式をサポート
* スプレッドシートの名前空間プレフィックスを持つワークブックの内部部分の互換性の向上
* 絶対パスを使用したワークブック内部メディアファイルの互換性を向上

### 問題の修正

* v2.8.1 の回帰バグを修正し、LibreOffice で自動フィルターが機能しない
* v2.8.1 の回帰バグを修正し、複数のセル範囲でデータ検証を調整できるようにサポートしました
* v2.8.1 の回帰バグを修正し、条件付き書式またはデータ検証に複数のセル範囲参照がある場合、重複行でエラーが発生します。
* v2.8.1 の回帰バグを修正し、複数回保存すると誤ったセル値が書き込まれる
* v2.8.1 の回帰バグを修正し、複数のシートにスパーク ラインを作成すると、スパーク ラインが重複する
* `CalcCellValue` 関数は、行列引数を持つ数式関数 ISNUMBER、OR、FIND の計算をサポートします
* `CalcCellValue` 関数の計算結果の丸め問題を修正
* `CalcCellValue` 関数が数式関数 XIRR および XNPV の誤った結果を返す問題を修正しました
* 列を削除するときに `RemoveCol` がエラーを返す問題を修正
* DATE 数式関数の誤った結果データ型を修正
* `r` 属性のない内部行要素を含むワークブックの読み取り時に発生するパニックを修正
* 新しい列や行を挿入するときに数式内の括弧が切り取られる問題を修正
* 一部のケースで誤ったデータ検証エスケープ結果を修正
* ストリームライターで一部の文字が表示されない問題を修正
* 同一ファイルの同じハッシュを維持し、不正な MIME タイプを修正するために、ソートされた内部パーツ パスでワークブックを保存します
* `AddChart` 関数の軸フォーマット設定がコンボ チャートで機能しない問題を修正
* `AddChart` 関数が誤った主軸タイトルの位置を設定する問題を修正
* `AddChart` 関数で設定された第 2 縦軸のタイトルが表示されない問題を修正
* 折れ線グラフの線の種類を設定する `AddChart` 関数が機能しない問題を修正
* `GetPivotTables` 関数が不正なデータ範囲を返す問題を修正
* `sysClr` のないテーマの場合の `GetStyle` 関数のパニックを修正
* SST インデックスなしでセルを読み取ると `GetCellRichText` 関数がエラーを返す問題を修正しました
* ビューのないシートでの `SetSheetVisible` 関数のパニックを修正
* 数値セル値がゼロの場合にフォーマットされた結果でパーセント記号が欠落する問題を修正
* 負の値を持つ散布図の水平軸が欠落している問題を修正
* 描画オブジェクトを調整した後に欠落していた図形マクロを修正
* 列を削除した後に条件付き書式が失われる場合がある問題を修正
* 小数値の丸めの問題を含むセル値の読み取りを修正
* IEEE 754 の「非数値」値または無限大でセル値を設定するサポート

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

* v2.8.0 の速度低下とメモリ使用量増加の問題を修正
* `GetRows` 関数のメモリ使用量を削減する
* `ColumnNumberToName` 関数のパフォーマンスを最適化し、メモリ使用量を約 50%、時間コストを約 50% 削減します

### その他

* Go Modules はモジュールの更新に依存しています
* 単体テストとドキュメントの更新
* 多言語対応のドキュメント ウェブサイトが更新されました: アラビア語、ドイツ語、英語、スペイン語、フランス語、日本語、韓国語、ポルトガル語、ロシア語、中国語 (簡体字)、中国語 (繁体字)。ドキュメントのイタリア語版を追加しました

### ありがとうございました

Excelize へのすべての貢献者に感謝します。