📢
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
問題の修正
- 組み込みの数値形式での 10 進数形式の丸めの問題を修正, 関連する問題 #1328, #1368 と #1373
- 場合によっては、AM/PM 番号形式の適用に関する問題を修正, 関連する問題 #1338
- 範囲外のスライス境界によって引き起こされたコメントを削除するときに panic を修正する, 関連する問題 #1343
- 場合によってはセル値を取得するときにパニックになる問題を修正, 関連する問題 #1384 と #1415
- 長い数字の文字列に関するデフォルトの数値書式解析の問題を修正する, 関連する問題 #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)
Discussion