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

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

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

オープンソース

GitHub: github.com/xuri/excelize

Doc: xuri.me/excelize/ja

リリースノート

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

互換性のヒント

  • エクスポートされた変数 ErrTableNameLength の名前を ErrNameLength に変更します
  • エクスポートされたタイプの名前を PaneOptions から Selection に変更します
  • エクスポートされた Comment データ型の Runs フィールドの名前を Paragraph に変更します
  • Style データ型の Lang フィールドを削除します
  • エクスポートされた ChartTitle データ型を削除し、代わりに RichTextRun データ型を使用
  • DecimalPlaces のデータ型を整数のポインタに変更しました
  • デフォルトのポイントからピクセルへの変換係数を変更する, 関連する問題 #279 と #1536
  • AddShape 関数のシグネチャを変更する: func (f File) AddShape(sheet, cell string, opts Shape) error を func (f File) AddShape(sheet string, opts Shape) error

新機能

  • 新しいエクスポートされたエラー変数 ErrExistsTableName と ErrorFormControlValue を追加します
  • Options データ型に新しいオプション ShortDatePattern、LongDatePattern、LongTimePattern、CultureInfo を追加しました, 関連する問題 #1199
  • 国コードの新しいエクスポート データ型 CultureName 列挙を追加
  • 新しい関数 GetTables と DeleteTable によるテーブルの取得と削除のサポート, 関連する問題 #674 と #1454
  • スタイル定義を取得するための新しい関数 GetStyle のサポート, 関連する問題 #314, #1520 と #1521
  • プレースホルダー、パディング、数値の四捨五入、通貨、アカウンティングを使用したセル値の適用をサポートし、引数の数値形式を切り替え、812 言語タグの日付と時刻の数値形式の適用をサポート, 関連する問題 #660
  • 新たに 10 個の数式関数をサポート: ARRAYTOTEXT, FORECAST, FORECAST.LINEAR, FREQUENCY, INTERCEPT, ODDFYIELD, ODDLPRICE, ODDLYIELD, PROB, VALUETOTEXT
  • エラーメッセージにファイルパスの長さ制限の詳細を追加
  • シート ペインとビューの選択を取得するための新しい関数 GetPanes のサポート
  • 新しい関数 AddFormControl、GetFormControls、および DeleteFormControl によるフォーム コントロールのサポート, 関連する問題 #301 と #1169
  • AddChart 関数は、主要なタイトルの設定をサポートします, 関連する問題 #1553
  • AddChart 関数は、第 2 系列軸を使用したグラフの作成をサポートします, 関連する問題 #518
  • AddChart 関数は、グラフのリッチ テキスト タイトルの書式設定と設定をサポートします, 関連する問題 #1588
  • AddShape 関数の形状タイプのチェックを追加します。形状タイプが指定されていない場合はエラーが返されます
  • 和暦数値形式でフォーマットされたセル値の読み取りをサポート, 関連する問題 #1590
  • GetPictures 関数は、1 つのセルのアンカー画像の読み取りをサポートします, 関連する問題 #1585
  • NewConditionalStyle 関数は、数値形式と保護を備えた条件付き書式の作成をサポートします, 関連する問題 #1610

互換性を向上させる

  • マルチバイト文字を使用したセル値の長さのチェックのサポート, 関連する問題 #1517
  • 重複したテーブルの作成と同じ名前の定義名を防止する
  • セルのコメント ボックスの形状サイズと KingSoft WPS の互換性を改善しました
  • シート形式プロパティでデフォルトの列幅へのフォールバックをサポート, 関連する問題 #1536
  • 互換性を向上させるために、内部ワークシート XML パスで大文字と小文字を区別しないようにしました, 関連する問題 #1591

問題の修正

  • セル値の長さをチェックした後に XML 文字をエスケープし、ストリーム ライターで生成された破損したファイルを修正しました, 関連する問題 #1518, #1519 と #1530
  • 複数行のプレーンテキストコメントの誤ったコメントボックスサイズを修正
  • テキストセルの値を数値として書式設定しないようにする, 関連する問題 #1523, #1528 と #1533
  • 同時実行安全機能の競合状態を修正
  • 日付時刻の誤ったミリ秒単位の丸めを修正
  • 午前 12 時間の日付と時刻の誤った数値形式の結果を修正
  • 誤った数式関数 SUMIFS および AVERAGEIFS の結果を修正, 関連する問題 #1564
  • 計算エンジンにおける基本的な算術演算子の優先順位の問題を修正, 関連する問題 #1599
  • 数式計算エンジンのクロスワークシート参照の問題を修正
  • 行を削除した後のテーブルの調整の問題を修正, 関連する問題 #1539
  • 1 つのセルで複数の画像を取得するサポート, 関連する問題 #1548
  • 追加した画像の位置が正しくない場合があるのを修正, 関連する問題 #1560
  • 列と行を挿入するときの数式の調整をサポートし、列または行の挿入によって引き起こされるブックの破損を修正します, 関連する問題 #1565
  • 数式関数 CONCAT、CONCATENATE は複数のセル値の連結をサポートします, 関連する問題 #1569
  • 数値結果を返すネストされた引数関数での誤った数式計算結果を修正しました, 関連する問題 #1582
  • 追加された画像が重複する原因となった内部グラフィック オブジェクト カウンタの問題を修正, 関連する問題 #1584
  • 時間の丸めの問題により、読み取り日付時刻セルの結果が誤って発生する問題を修正しました, 関連する問題 #1587
  • 同じ開始軸と終了軸を持つセルを結合した場合のパニックを修正

パフォーマンスの最適化

  • 正規表現呼び出しを最適化してパフォーマンスを向上させる, 関連する問題 #1532
  • これにより、不必要なバイト/文字列変換が回避されます, 関連する問題 #1541

その他

  • Go Modules はモジュールの更新に依存しています
  • 変数宣言とエラーリターンステートメントを簡素化する
  • Unicode 値を使用した組み込み言語数値形式コード マッピングを削除する
  • 内部の xlsxTabColor データ型を削除し、xlsxTabColor の代わりに xlsxColor データ型を使用します
  • 単体テストとドキュメントの更新
  • 簡体字中国語、英語、フランス語、ロシア語、日本語、韓国語、アラビア語、ドイツ語、スペイン語を含む多言語ドキュメントサイトの更新

ありがとうございました

Excelize へのすべての貢献者に感謝します。以下は、このバージョンでコードに貢献した貢献者のリストです。

  • IAkumaI (Valery Ozarnichuk)
  • sillydong (Chen Zhidong)
  • fudali113 (fudali)
  • Juneezee (Eng Zer Jun)
  • joehan109
  • yicixin (壹次心)
  • vb6iscool
  • chengcxy (chengxinyao)
  • lidp20
  • JDavidVR (David)
  • fsfsx
  • cnmlgbgithub