Go 言語スプレッドシートライブラリ:Excelize 2.7.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
発売日: 2023年1月9日
GitHub Release: https://github.com/xuri/excelize/releases/tag/v2.7.0
リリースノート
このバージョンでの最も注目すべき変更点は次のとおりです:
互換性のヒント
アップグレード要件 Go 言語バージョンは 1.16 以降、非推奨パッケージ ioutil の移行用
無効な文字をトリムする代わりに、無効なシート名をチェックしてエラーを返す
GetCellStyle 関数は、結合セル範囲のマスター セル スタイルを返さなくなりました
エクスポートされた 5 つのデータ型とエラー定数の名前を変更します:
PivotTableOption の名前を PivotTableOptions に変更します
FormatHeaderFooter の名前を HeaderFooterOptions に変更します
FormatSheetProtection の名前を SheetProtectionOptions に変更します
SparklineOption の名前を SparklineOptions に変更します
ErrExistsWorksheet の名前を ErrExistsSheet に変更します
エクスポートされた 54 種類のタイプを削除する: AutoPageBreaks, BaseColWidth, BlackAndWhite, CodeName, CustomHeight, Date1904, DefaultColWidth, DefaultGridColor, DefaultRowHeight, EnableFormatConditionsCalculation, FilterPrivacy, FirstPageNumber, FitToHeight, FitToPage, FitToWidth, OutlineSummaryBelow, PageLayoutOption, PageLayoutOptionPtr, PageLayoutOrientation, PageLayoutPaperSize, PageLayoutScale, PageMarginBottom, PageMarginFooter, PageMarginHeader, PageMarginLeft, PageMarginRight, PageMarginsOptions, PageMarginsOptionsPtr, PageMarginTop, Published, RightToLeft, SheetFormatPrOptions, SheetFormatPrOptionsPtr, SheetPrOption, SheetPrOptionPtr, SheetViewOption, SheetViewOptionPtr, ShowFormulas, ShowGridLines, ShowRowColHeaders, ShowRuler, ShowZeros, TabColorIndexed, TabColorRGB, TabColorTheme, TabColorTint, ThickBottom, ThickTop, TopLeftCell, View, WorkbookPrOption, WorkbookPrOptionPtr, ZeroHeight と ZoomScale
エクスポートされた定数を 2 つ削除する: OrientationPortrait と OrientationLandscape
21 つの関数のシグネチャを変更する:
func (f *File) SetPageLayout(sheet string, opts ...PageLayoutOption) error を func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error に変更
func (f *File) GetPageLayout(sheet string, opts ...PageLayoutOptionPtr) error を func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error) に変更
func (f *File) SetPageMargins(sheet string, opts ...PageMarginsOptions) error を func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error に変更
func (f *File) GetPageMargins(sheet string, opts ...PageMarginsOptionsPtr) error を func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error) に変更
func (f *File) GetSheetIndex(sheet string) int を func (f *File) GetSheetIndex(sheet string) (int, error) に変更
func (f *File) SetSheetName(source, target string) を func (f *File) SetSheetName(source, target string) error に変更
func (f *File) GetSheetVisible(sheet string) を func (f *File) GetSheetVisible(sheet string) (bool, error) に変更
func (f *File) DeleteSheet(sheet string) を func (f *File) DeleteSheet(sheet string) error に変更
func (f *File) NewSheet(sheet string) int を func (f *File) NewSheet(sheet string) (int, error) に変更
func (f *File) NewConditionalStyle(style string) (int, error) を func (f *File) NewConditionalStyle(style *Style) (int, error) に変更
func (f *File) NewStyle(style interface{}) (int, error) を func (f *File) NewStyle(style *Style) (int, error) に変更
func (f *File) AddChart(sheet, cell, opts string, combo ...string) error を func (f *File) AddChart(sheet, cell string, chart *ChartOptions, combo ...*ChartOptions) error に変更
func (f *File) AddChartSheet(sheet, opts string, combo ...string) error を func (f *File) AddChartSheet(sheet string, chart *ChartOptions, combo ...*ChartOptions) error に変更
func (f *File) AddShape(sheet, cell, opts string) error を func (f *File) AddShape(sheet, cell string, opts *Shape) error に変更
func (f *File) AddPicture(sheet, cell, picture, format string) error を func (f *File) AddPicture(sheet, cell, picture string, opts *GraphicOptions) error に変更
func (f *File) AddPictureFromBytes(sheet, cell, opts, name, extension string, file []byte) error を func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error に変更
func (f *File) AddTable(sheet, hCell, vCell, opts string) error を func (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) error に変更
func (sw *StreamWriter) AddTable(hCell, vCell, opts string) error を func (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) error に変更
func (f *File) AutoFilter(sheet, hCell, vCell, opts string) error を func (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) error に変更
func (f *File) SetPanes(sheet, panes string) error を func (f *File) SetPanes(sheet string, panes *Panes) error に変更
func (f *File) SetConditionalFormat(sheet, reference, opts string) error を func (f *File) SetConditionalFormat(sheet, rangeRef string, opts []ConditionalFormatOptions) error に変更
既存の関数の代わりに新しい関数を導入する:
SetSheetPrOptions と SetSheetFormatPr の代わりに SetSheetProps を使う
GetSheetPrOptions と GetSheetFormatPr の代わりに GetSheetProps を使う
SetSheetViewOptions の代わりに SetSheetView を使用する
GetSheetViewOptions の代わりに GetSheetView を使用する
SetWorkbookPrOptions の代わりに SetWorkbookProps を使用する
GetWorkbookPrOptions の代わりに GetWorkbookProps を使用する
一度に複数の行を挿入できるようにするには、InsertRow の代わりに InsertRows を使用します
一度に複数の列を挿入できるようにするには、InsertCol の代わりに InsertCols を使用します
CellTypeFormula、CellTypeInlineString、CellTypeSharedStringを追加し、CellType 列挙から CellTypeString を削除
AddComment 関数のパラメータが変更され、コメントでのリッチ テキストの作成がサポートされました, 関連する問題 #1204
内部エラー ログ出力を削除します。XML デシリアライズ エラー時にエラーが返されます。GetComments、GetDefaultFont、SetDefaultFont 関数のエラー戻り値を追加します
新機能
新しい関数 GetDataValidations と GetConditionalFormats を追加して、データ検証と条件付きフォーマットを取得する, 関連する問題 #827
ワークブックの保護をサポートするための新しい関数 ProtectWorkbook および UnprotectWorkbook を追加
セットワークシート列のセルに新しい関数 SetSheetCol を追加する, 関連する問題 #1247
セットされた列スタイルのための新しい関数 GetColStyle を追加する, 関連する問題 #1293
画像データを指定して背景画像を設定する新関数 SetSheetBackgroundFromBytes を追加, 関連する問題 #1405
新しいエクスポート変数 IndexedColorMapping を追加
20 種類のエクスポートタイプを追加: AutoFilterListOptions, AutoFilterOptions, Chart, ChartAxis, ChartDimension, ChartLegend, ChartLine, ChartMarker, ChartPlotArea, ChartSeries, ChartTitle, ConditionalFormatOptions, PaneOptions, Panes, GraphicOptions, Shape, ShapeColor, ShapeLine, ShapeParagraph と TableOptions
新しいサポート 2 つの数式関数: AGGREGATE および SUBTOTAL
Save、Write、および WriteTo 機能は、保存オプションを受け入れるようになりました, 関連する問題 #744
AddChart 関数のサポートでは、折れ線グラフの線が滑らかかどうかを指定します, 関連する問題 #1290
AddChart 関数のサポートは、チャート内のカスタム線の色を設定します, 関連する問題 #1345
AddChart 関数は、カスタムチャート軸フォントスタイルをサポートしています, 関連する問題 #320
AddChart 関数は 3D 折れ線グラフの作成をサポートします
関数 SetColWidth, GetColWidth, SetColVisible, GetColVisible, SetColStyle および GetColStyle が同時実行セーフをサポートするようになりました
存在しないスタイル ID を設定すると、エラーが返されます, 関連する問題 #1323
潜在的な間違いを避けるために、昇順の行番号なしでストリーム行を設定するとエラーが返されます, 関連する問題 #1139
ストリームライターは、各セルの RowOpts でスタイルを適用します, 関連する問題 #1354
ペインを設定するためのストリームライターのサポート, 関連する問題 #1047
インラインリッチテキストセルを設定するストリームライターのサポート
改ページを挿入するためのストリーム ライターのサポート
新しい 7 つのエクスポートエラー: ErrUnprotectWorkbook, ErrUnprotectWorkbookPassword, ErrStreamSetPanes、ErrSheetNameBlank、ErrSheetNameInvalid、ErrSheetNameLength、ErrSheetNameSingleQuote が追加されました
5 つの新しいエクスポートデータ型の導入: HeaderFooterOptions, PageLayoutMarginsOptions, PageLayoutOptions, SheetPropsOptions と ViewOptions
概要列をアウトラインの詳細の右側に表示するように設定するためのサポート
テーマと色合いでフォントの色を設定および取得するためのサポート, 関連する問題 #1369
ISO 8601 形式の日付を含むセル値の取得をサポート
インデックス付きの色でフォントの色の設定と取得をサポート
列の挿入または削除時に列スタイルの更新をサポート
ワークブックの Close 関数で、ストリーム ライターの一時ファイルのクリーンアップがサポートされるようになりました
AddPicture 関数で SVG 形式の画像を挿入できるようになりました
互換性を向上させる
ストリーム ライターは、文字列セル値のインライン文字列型を書き込みます, 関連する問題 #1377
スプレッドシートを保存するときに空の行をスキップしてファイル サイズを縮小する, 関連する問題 #1383
問題の修正
場合によっては、AM/PM 番号形式の適用に関する問題を修正, 関連する問題 #1338
範囲外のスライス境界によって引き起こされたコメントを削除するときに panic を修正する, 関連する問題 #1343
長い数字の文字列に関するデフォルトの数値書式解析の問題を修正する, 関連する問題 #1360
空の名前でシートを作成するとファイルが破損する問題を修正しました, 関連する問題 #1361
イメージの挿入後にイメージの取得コンテンツが空だった問題を修正
場合によっては、列/行を挿入した後にブックの破損を生成するのを修正します
数式セルを書き込むときに計算チェーンの共有数式を削除し、場合によっては生成されたワークブックの破損を修正します
シート名を正規化して、2.6.0 と 2.6.1 の間の動作の回帰を修正します, 関連する問題 #1365
OR 関数の数式計算結果の問題を修正
1 つのセルが結合されたセル範囲を含むワークシートに列または行を挿入する際のエラーを修正します。
1 つのセルが結合されたセル範囲を含むワークシートで、結合されたセルの範囲を取得する際のエラーを修正します
不完全なリッチ テキスト セル値を取得する場合がある問題を修正
破損したファイルで回避するストリーム ライターの XML 文字のエスケープ, 関連する問題 #1391
ワークシート名が空の場合の数式関数 ADDRESS 結果エラーを修正, 関連する問題 #1396
場合によっては画像挿入の問題を修正, 関連する問題 #1404
パフォーマンスの最適化
ストリームライターがセルをマージするパフォーマンスを向上させ、時間コストを 90% 以上削減し、メモリ使用量を最大で約 86% 削減
ストリームライター SetRow 機能のパフォーマンスを向上させ、メモリ使用量を約 19% 削減し、高速化
その他
Go Modules はモジュールの更新に依存しています
単体テストとドキュメントの更新
変数と関数での特殊名の使用
簡体字中国語、英語、フランス語、ロシア語、日本語、韓国語、アラビア語、ドイツ語、スペイン語を含む多言語ドキュメントサイトの更新
ありがとうございました
Excelize へのすべての貢献者に感謝します。以下は、このバージョンでコードに貢献した貢献者のリストです。
@cdenicola (Cooper de Nicola)
@chenliu1993
@davidborry
@patsak (Kostya Privezentsev)
@dafengge0913
@Beeb0p (Artem Tarasenko)
@invzhi
@zhangzitao (Zitao)
@jtwatson (Joseph Watson)
@carbin-gun (charles.deng)
@harrison3000 (Harrison)
@strivek (GaoFei)
@gonghaibinx
@martinmr (Martin Martinez Rivera)
@zclark (Zach Clark)
@March0715 (March)
@renxiaotu
@devloppper
@jianxinhou
@nesstord
@Bayzet (Bayzet Tlyupov)
@guoweikuang (郭伟匡)
@qinyuguang (Gin)
@liron-l (Liron Levin)
この記事が気に入ったらサポートをしてみませんか?