📢
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