Skip to content

ファイル形式サポート ​

概要 ​

読み込み / 書き出し / 保持は別の概念です

読み込みは構造を解釈できること、書き出しは構造を出力できること、保持は往復保存で失わないことです。計算に影響するのは、評価対象として実装されている機能だけです。

領域状態
.xlsx 読み込みワークブック、シート、セル、スタイル、共有文字列、リレーションシップ、テーブル、定義名、コメント、スレッドコメントと人物一覧、ハイパーリンク、結合、型付き AutoFilter、入力規則、条件付き書式、ピボット構造、描画オブジェクト、画像、図形、スパークライングループ、テーブルスライサー、保護範囲、What-If データテーブル、カスタムテーブルスタイルに対応
.xlsx 書き出し上の読み込み行に挙げたモデル化済みの構造と、型付き AutoFilter / 画像 / 図形 / グラフの編集を書き戻し、可能な未モデル化パーツを保持。重要な構造は出力パッケージで確認
入力規則の評価validateValue() は明示した入力候補を確認し、listInvalidCells() は保存済みセルの値を確認する。どちらもセルを変更せず、編集時に入力規則を自動で強制しない
.xlsb 読み込み / 書き出しスタイル(グラデーション塗りと dxf のフォント効果を含む)、行 / 列レイアウト、結合、date1904、計算設定、ブックのプロパティ、すべてのブックウィンドウとそのシートビュー、ウィンドウ枠の固定と分割、動的配列メタデータ、対応するトークン化数式、条件付き書式(カスタムアイコンセットを含む)、入力規則、計算列・集計行・構造化参照を持つテーブル、スパークライングループ、What-If データテーブル、保護範囲、シート / ワークブック保護のメタデータをモデル化して出力。XLSB から読み込んだ AutoFilter は不透明なワークシート末尾として保持し、型付きの変更は保留して報告。従来型ノート、スレッドコメント、OOXML の描画は XLSB 保存時に省略して報告します。XLSB の制限 を参照
.xlsm のマクロバイト保持するが実行しない
旧形式の .xls対象外
パスワード保護されたパッケージ復号しない。暗号化されたワークブックも旧形式の .xls も OLE 複合ファイルで、どちらを読み込んでも kIoZipEncrypted で失敗する。先に復号するか .xlsx へ変換する
グラフの構造・データXLSX は型付きの読み取り・作成・編集と系列データの解決に対応。XLSB からの読み込みは読み取り専用。保存時にワークブックが現在保持する値からグラフ系列のキャッシュを更新し、行・列・シートの編集に参照が追随
計算エンジンによるグラフ / 描画対象外。XLSX では画像バイトとアンカーを検査、読み取り、挿入、削除でき、描画オブジェクトと図形を列挙でき、図形は挿入・更新・削除もできます。計算エンジン自体はグラフ、図形、グループを描画しません。formulon-cell のブラウザー UI は対応するグラフを描画します
元シートまたは外部データからのピボットキャッシュ更新対象外。対応済みキャッシュの保持・投影は対象
形式別のサポート.xlsxモデル化し、パーツも保持.xlsbノート・描画は保存時に省略.xlsmマクロは保持のみ.xls対象外形式別のサポート.xlsxモデル化し、パーツも保持.xlsbノート・描画は保存時に省略.xlsmマクロは保持のみ.xls対象外
.xlsm のマクロバイトは保持するだけで実行せず、旧形式の .xls は対象外です。

CLI は -o のファイル拡張子で出力コンテナを選びます。バインディングは saveAs(format) / save_as(fmt) に渡す WorkbookFormat で選びます。読み込みはパッケージの内容を調べるため、入力ファイルの拡張子では形式を決めません。

読み込みの上限 ​

読み込み時にはパッケージの展開量に上限があり、細工されたファイルはメモリを使い果たす前にホストステータスで失敗します。

上限値超えたときのステータス
パッケージ内の 1 パーツの展開後サイズ100 MiB(圧縮率の検査もあり)kIoZipBomb
1 回の読み込みで展開する全パーツの合計256 MiBkIoFileTooLarge
.xlsx の 1 ワークシートに格納するセル約 298 万(書き込まれた座標ごとに数える。.xlsb は対象外)kIoFileTooLarge
1 つのピボットキャッシュのレコードスロット(レコード数 × キャッシュフィールド数)33,554,432(2^25)kIoFileTooLarge

保持ルール ​

XLSX では、上の表に示した型付き AutoFilter、画像操作、グラフの型付き編集と系列データの解決に対応します。グラフは XLSX で作成・編集でき、XLSB からの読み込みは読み取り専用です。図形とグループはレコードとして列挙・編集でき、描画は別のツールに任せます。XLSB では、パッケージから読み込んだ AutoFilter は不透明なまま保持し、型付きの変更を保留します。従来型ノート、スレッドコメント、OOXML の描画は XLSB 保存時に省略します。XLSB 由来でないワークブックのページ設定、余白、印刷オプション、ヘッダー / フッター、手動改ページも保留します。.xlsx 由来のテーブルスライサー、保護範囲のセキュリティ記述子、workbookPr の dateCompatibility と allowRefreshQuery、カスタムのテーブル・ピボットテーブルスタイル、参照を符号化できないスパークライングループ、.xlsx 由来のピボットテーブルも同様です。詳しくは ファイル形式 を参照してください。saveWithDiagnostics() / save_with_diagnostics() の deferredFeatureCount / deferred_feature_count で保留された機能を確認できます。.xlsb から読み込んだテーブルスライサーは、.xlsb で再保存しても残ります。そのほか、Formulon が意味を解釈しない機能は可能な範囲でパッケージ構造を保持するため、作成や描画は別のツールが担当できます。

計算ルール ​

再計算へ影響するのは、計算エンジンが表現している機能だけです。evaluateAutoFilter() と validateValue() は明示的に呼び出したときだけ判定します。applyAutoFilter() は行の表示状態を変更し、依存する SUBTOTAL / AGGREGATE 数式を再計算待ちにします。更新後の値を読む前に recalc() を呼び出してください。validateValue() は入力候補を保存しません。保持される構造が自動的に解釈されるわけではありません。

この対応表の API 境界は、フィルターと入力規則、コメントと画像、表示とレイアウト で説明しています。