Skip to content

WASM API ​

正式な TypeScript 宣言はパッケージ同梱の dist/formulon.d.ts です。このページは主要 API の要約です。

宣言ファイルを優先する

ページとインストール済みパッケージで内容が食い違う場合、対応バージョンの dist/formulon.d.ts を正としてください。

用語: ステータス付きの戻り値

WASM の失敗しうる呼び出しが返す Status オブジェクトです。ok、数値 status、人間向け message、診断用 context を持ちます。Excel のセルエラーはステータス失敗ではなく kind = Error の Value として返ります。

モジュール ​

ts
import createFormulon from '@libraz/formulon'

const Module = await createFormulon()

@libraz/formulon は単一スレッドの実行入口です。通常のメモリを使うため、ブラウザでオリジン間分離なしに読み込めます。recalcParallel でワーカーを使う場合は @libraz/formulon/threads を読み込んでください。この入口は付属の @libraz/formulon/formulon_threads.wasm を使い、ブラウザではオリジン間分離が必要です。どちらの入口も同じ API と宣言ファイルを公開します。

createFormulon(opts?) は Emscripten の設定として locateFile(path, prefix)、print(msg)、printErr(msg)、noInitialRun、noExitRuntime を受け取ります。バンドラが .wasm ファイルを別の URL から配信する場合は locateFile を指定します。

解決された Module はライブラリ関数と Workbook の静的ファクトリを持ちます。すべて 関数とメソッド に一覧があります。Module.evalFormula(formula) は新規ワークブックの Sheet1!A1 を基準に読み取り専用で評価し、配列の結果は左上の要素だけを返します。Workbook.createForProfile(profileId) に不明な ID を渡すと isValid() が false のワークブックを返し、Workbook.loadBytes(bytes) は .xlsx か .xlsb かをバイト列から判別します。setLogMinLevel(level) と setLogSink(sink) はプロセス全体の状態を変更します。既定値の LogLevel.Off では何も出力しません。sink(record: Uint8Array) は JSON レコードを 1 件ずつ受け取り、その配列は呼び出し中だけ有効です。null を渡すと stderr への出力に戻ります。

パッケージは名前付きエクスポートとして mergeFunctionMetadata(base, entry, locale) も公開します。WASM の状態に触れない純粋な JavaScript のヘルパーです。プロファイルと数式テキスト を参照してください。

結果の形式 ​

失敗しうる呼び出しは Status、または status を含む構造体を返す、ステータス付きの戻り値です。

ts
interface Status {
  ok: boolean
  status: number
  message: string
  context: string
}

Excel セルエラーは ValueKind.Error。Status の失敗とは区別されます。

sheetCount()、すべての *Count()、calcMode() などの数値アクセサは、{ status, value } 形式の NumberResult を返します。sheetName()、excelProfileId()、localizeFunctionName()、canonicalizeFunctionName()、localizeFormula()、canonicalizeFormula() などの文字列アクセサは StringResult を返します。value を読む前に status.ok を確認してください。失敗時の既定値も、0 件や空文字列として返ります。

リスト取得 API は ListResult<T> を返します。これは status プロパティを持つ配列そのものです。要素は result[0] のように読み取り、items や value の戻り値で包まれた形式は使いません。spillInfo() は SpillInfo を返すため、領域フィールドを読む前に status を確認してください。

@libraz/formulon と @libraz/formulon-native は、どちらもすべての位置引数をエンジン呼び出しの前に同じ規則で検査します。必須引数の欠落、型の誤り、オブジェクトが宣言された位置へのプリミティブまたは null は TypeError、有限でない値、小数、範囲外の整数は RangeError を送出します。どちらのパッケージも、欠落した引数を 0、""、false、空オブジェクトで補いません。したがって setNumber(0, 0, 0)、setIterative(true)、addFont(null) は例外になります。長さの違う配列や関数でないコールバックなど、メソッドがステータスで報告する不正な引数は、どちらのパッケージでも kInvalidArgument(2)を返します。型が正しい呼び出しをエンジンが拒否した場合は Status.ok === false を返します。引数の検査でワークブックが変更されることはありません。孤立した UTF-16 サロゲートを含む文字列フィールドは、その位置に U+FFFD を格納して渡すため、エンジンに不正な UTF-8 は届きません。

値の種類 ​

ts
enum ValueKind {
  Blank,
  Number,
  Bool,
  Text,
  Error,
  Array,
  Ref,
  Lambda
}

getValue() は CellResult({ status, value })を返します。一方、evalFormula()、evaluateFormulaText()、evaluateConditionalFormula() は同じ status / value を持つ EvalResult の戻り値を返します。いずれも value フィールドは kind でデータの種類が分かれる Value です。数値は value.number、真偽値は value.boolean(0 または 1)、テキストは value.text、エラーは value.errorCode(formulon::ErrorCode の値)で読み取ります。errorText というフィールドは存在しません(各コードの意味は エラーモデル を参照)。Array / Ref / Lambda の値は Value にデータを持ちません。ラムダの数式テキストはワークブックの getLambdaText(sheet, row, col) で、配列の中身は evaluateFormulaArray() で読み取ります。

宣言ファイルは、次の enum グループも公開します。

分野enum
値ValueKind、ErrorCode(Null = 0、Div0 = 1、… Python = 15、Unknown = 16。Value.errorCode の値で、setError の引数にも使う)
寸法と表示GeometryMode(Display = 0、Print = 1)、DisplayStatus(Ok = 0、Overflow = 1、InvalidFormat = 2)
AutoFilterFilterKind、FilterOperator、DynamicFilterType、SortBy、SortMethod、DateTimeGrouping
入力規則ValidationErrorStyle(Stop = 0、Warning = 1、Information = 2)
条件付き書式CfMatchKind(DifferentialFormat = 0、ColorScale = 1、DataBar = 2、IconSet = 3)
テーマとスタイルColorContext、ColorResolution、ThemeSource、EffectiveStyleSource
画像と描画ImageFormat、DrawingObjectKind、AnchorKind、AnchorEditAs
ピボットテーブルPivotAxis、PivotAggregation、PivotShowValuesAs、PivotFilterType、PivotFilterValueKind、PivotDateGrouping、PivotCalendar、PivotReportLayout、PivotCellKind、定数 PIVOT_SHOW_AS_BASE_PREVIOUS / PIVOT_SHOW_AS_BASE_NEXT
テキスト照合CollationStrength(Compare = 0、Dynamic = 1、ClassicExact = 2)
ワークブック状態CalcMode(ファイルに往復保存するだけの情報で、エンジンはどのモードでも未計算のセルを再計算する)、SheetVisibility、WorkbookFormat、ExternalLinkKind
ログLogLevel(Debug = 0、Info = 1、Warn = 2、Error = 3、Off = 4)

フィルター関連の enum は対応する OOXML の序数に従います。ImageFormat は Unknown に加えて Png、Jpeg、Gif、Bmp を表します。全メンバーは宣言ファイルを参照してください。

ワークブックのライフサイクル ​

ts
const wb = Module.Workbook.loadBytes(bytes)
try {
  if (!wb.isValid()) throw new Error(Module.lastErrorMessage())
  const recalculated = wb.recalc()
  if (!recalculated.ok) {
    throw new Error(`${recalculated.message} (${recalculated.context})`)
  }
  const saved = wb.save()
  if (!saved.status.ok || saved.bytes === null) {
    throw new Error(`${saved.status.message} (${saved.status.context})`)
  }
} finally {
  wb.delete()
}

delete() は必ず呼んでください。同じワークブックのメソッドが実行中(たとえば spec の getter やコールバックの中)に呼ぶと TypeError を送出し、ハンドルは有効なままです。ネイティブパッケージの dispose() も同じ規則に従います。

コンテナ形式 ​

save() は常に OOXML .xlsx を書き出します。saveAs(format) で書き出すコンテナ形式を明示できます。

ts
enum WorkbookFormat {
  Unknown = 0,
  Xlsx = 1,
  Xlsb = 2
}

const result = wb.saveAs(WorkbookFormat.Xlsb) // SaveResult { status, bytes }

loadBytes(bytes) はフラグなしでどちらのコンテナも受け付けます。ファイル名ではなく、パッケージのバイト列そのものから .xlsb / .xlsx を判別するため、同じ呼び出しでどちらも扱えます。各コンテナが何を往復保存できるかは ファイル形式サポート を参照してください。

saveWithDiagnostics(format) は保存したバイト列と、書き出し側が検出した損失・延期のカウンターを返します。readDiagnostics() はワークブックの読み込み時に取得したカウンターを返します。カウンターの対象は一部の損失だけです。すべて 0 であることは、記載された損失が発生しなかったことを示しますが、パッケージをバイト単位で比較したことや、診断イベントが一切なかったことは示しません。

結果フィールド意味
saveWithDiagnosticsdowngradedFormulaCountキャッシュ済みリテラルとして出力された数式セルの数。XLSX では常に 0 です。
deferredFeatureCountレコードへ変換されなかったシート機能の数。XLSX では常に 0 です。
droppedPartCountいずれかの書き出し側が破棄した、そのまま保持していたパートの数。
droppedRelationshipCount対象パートの破棄に伴って破棄された関連付けの数。droppedPartCount と同じ損失を表す場合があります。
renumberedPartCount書き出し側が割り当てたパート ID で出力されたテーブルの数。XLSB では常に 0 です。
readDiagnosticsundecodedFormulaCountデコードできなかった保存済み数式の数。XLSB のみです。
undecodedDefinedNameCountデコードできずにスキップされた定義名の数。XLSB のみです。
undecodedPartCountコンテンツタイプを解決できなかった XLSB パッケージパートの数。
skippedFeatureCount参照が利用できずスキップされた OOXML の表示オーバーレイ項目の数。
unknownContentTypeCountコンテンツタイプを認識できなかった OOXML ワークブックパートの数。

固定する時計 ​

ワークブックが固定されていない場合、NOW()、TODAY()、ピボットの相対期間フィルターはホストの時計を読み取ります。これらの結果を 1 回の再計算で一致させる場合や、ホストをまたいで再現する場合は、ワークブックを 1 つの年月日・時分秒に固定してください。

ts
const setPinned = wb.setPinnedNow(2026, 8, 19, 12, 0, 0)
if (!setPinned.ok) throw new Error(setPinned.message)
const pinned = wb.pinnedNow()
if (!pinned.status.ok) throw new Error(pinned.status.message)
const recalculated = wb.recalc()
if (!recalculated.ok) throw new Error(recalculated.message)
const now = pinned.now // CivilTime | null
const cleared = wb.clearPinnedNow()
if (!cleared.ok) throw new Error(cleared.message)

pinnedNow() は { status, now } を返します。now は固定中なら CivilTime オブジェクト、ホストの時計に従う場合や呼び出しが失敗した場合は null です。setPinnedNow() は year 1900–9999、month 1–12、月ごとの実在する日、hour 0–23、minute / second 0–59 を検証します。不正な値は正規化せず、失敗した Status を返します。値はタイムスタンプではなく年月日・時分秒のフィールドとして保持するため、タイムゾーンの解釈はありません。固定の設定・解除ではキャッシュ済みの数式値を再計算しないため、必要に応じて recalc() を明示的に呼び出してください。固定はファイル状態ではなくワークブックのモデル状態です。保存時には記録されず、読み込み直後のワークブックは固定されていません。

プロファイルと数式テキスト ​

新しいワークブックは win-365-en_US プロファイルを使います。プロファイルはワークブックの状態で、ロケールに依存する評価、数値と日付の表示、テキスト比較、Excel 上のローカライズされた名前を決めます。数式の入力は英語の正規形のままなので、画面に表示した数式は下記のヘルパーで変換してから保存します。プロファイル ID はファイルに書き込まれないため、読み込み後に setExcelProfileId() で設定し直してください。ID は {mac,win}-365-{ja_JP,en_US,de_DE,fr_FR,zh_CN,ko_KR,th_TH,es_ES,es_MX,pt_BR,ru_RU,zh_TW,it_IT,nl_NL} の 28 個です。ロケール情報はすべての mac-* と win-365-ja_JP で Excel の実測値、残り 13 個の Windows プロファイルは推定値です。

createDefault() は Calibri 11 を含む通常の 1 シート既定値を使います。createForProfile(profileId) は選択したプロファイルを記録し、本文用フォントと必要なロケールのふりがな用フォント、ローカライズされた Normal スタイルと最初のシート名、セル XF の配置、ふりがな設定、ページ余白、Mac の行の高さと基本列幅を設定します。テーマパートは書き出さないため、新しいワークブックは既定の Office テーマとして読み取られます。Windows の行と列の寸法はエンジンの既定値を使います。

ts
import createFormulon from '@libraz/formulon'

const LocaleModule = await createFormulon()
const profile = 'mac-365-de_DE'
const localeWorkbook = LocaleModule.Workbook.createForProfile(profile)
try {
  const shown = localeWorkbook.localizeFormula('=SUM(1.5,TRUE)', profile)
  if (!shown.status.ok) throw new Error(shown.status.message)
  const stored = localeWorkbook.canonicalizeFormula(shown.value, profile)
  if (!stored.status.ok) throw new Error(stored.status.message)
  const facts = localeWorkbook.localeFacts(profile)
  if (!facts.status.ok || facts.facts === null) throw new Error(facts.status.message)
  console.log(shown.value, stored.value, facts.facts)
} finally {
  localeWorkbook.delete()
}

localizeFormula() は関数名、引数と配列の区切り文字、小数点、真偽値名、エラー名を変換します。文字列、引用符付きシート名、外部修飾子、構造化参照の角括弧は保持します。canonicalizeFormula() は逆方向に変換します。どちらもテキストの変換だけを行い、数式を検証したりワークブックに設定したりはしません。評価時の挙動は setExcelProfileId() で選び、setFormula() には英語の不変な保存形式を渡してください。

localeFacts() は選択したプロファイルの区切り文字、真偽値名、日付順、通貨、ローカライズ済みエラー名を返します。facts.collationMeasured が true になるのは mac-* だけで、win-365-ja_JP を含む Windows プロファイルでは false です。

compareText(a, b, strength, profileId) は { status, order } を返し、order は -1、0、1 のいずれかです。collationClasses(values, strength, profileId) は { status, classIds, classCount } を返します。ID は入力の Value ごとに 1 つ、SORT の順序で昇順に振られ、その呼び出しの中だけで意味を持ちます。CollationStrength ごとの比較規則とクラスの規則は テキスト照合 を参照してください。

functionMetadata(name) は、保存用の関数名、引数の数、対応状況など、ロケールに依存しない構造情報だけを返します。人が読むシグネチャと説明文のフィールドは空です。functionNames() は関数の一覧を返します。画面向けの説明はホスト側で mergeFunctionMetadata(base, entry, locale) を使って補います。このヘルパーの BCP-47 UI ロケールは、エンジンのプロファイル ID とは別です。

関数とメソッド ​

参照元リビジョンの src/wasm/formulon.d.ts から生成した一覧です。Module. で始まる名前は createFormulon() が返すオブジェクトのメンバー、Workbook. で始まる名前は静的ファクトリ、createFormulon と mergeFunctionMetadata はパッケージのエクスポートで、それ以外はすべて Workbook インスタンスのメソッドです。説明列は宣言に付いたドキュメントコメントの最初の 1 文で、API 自身の英語のテキストをそのまま載せています。コメントのない宣言では空欄です。

参照元

この一覧は、ドキュメント対象 0.18.0 のコアソースから生成しています。取得元のコミットを固定し、WASM・Python・C の宣言を同じリビジョンで照合しています。デモは公開済みパッケージを使い、実行バージョンを別に表示します。

ライブラリ、診断、ログ ​

名前シグネチャ説明
createFormuloncreateFormulon(opts?: FormulonModuleOptions): Promise<FormulonModule>Default export from formulon.js: the Emscripten module factory.
Module.versionStringversionString(): stringLibrary version string (UTF-8).
Module.versionversion(): stringAlias of versionString, matching the Node binding's name.
Module.statusStringstatusString(status: number): stringStatic description of status (e.g. "kOk").
Module.errorDisplayNameerrorDisplayName(errorCode: number): stringExcel display literal for a cell error code (e.g. "#DIV/0!").
Module.lastErrorMessagelastErrorMessage(): stringMost-recent thread-local error message.
Module.lastErrorContextlastErrorContext(): stringMost-recent thread-local error context.
Module.setLogMinLevelsetLogMinLevel(level: number): StatusSets the engine's minimum structured-log severity (a LogLevel ordinal).
Module.setLogSinksetLogSink(sink: ((record: Uint8Array) => void) | null): StatusRoutes structured-log records to sink, or restores the (silent at the default threshold) stderr fallback when sink is null.

ワークブックのライフサイクルと入出力 ​

名前シグネチャ説明
Workbook.createDefaultcreateDefault(): WorkbookWorkbook with a single default sheet ("Sheet1").
Workbook.createEmptycreateEmpty(): WorkbookWorkbook with no sheets.
Workbook.createForProfilecreateForProfile(profileId: string): WorkbookWorkbook with the new-workbook defaults of an Excel profile id such as "mac-365-ja_JP": font 0 (name, charset, theme-minor scheme), the phonetic font (font 1, CJK locales), the Normal style name, the sheet name, phoneticPr, page margins and, on mac-*, the row height and base column width follow the locale.
Workbook.loadBytesloadBytes(bytes: Uint8Array): WorkbookLoads from an in-memory workbook byte buffer, auto-detecting .xlsx vs .xlsb from the package contents (there is no filename to route on).
isValidisValid(): booleanTrue when the wrapper holds a live native handle.
deletedelete(): voidReleases the native handle.
savesave(): SaveResultSerialises the workbook to an in-memory .xlsx byte stream.
saveAssaveAs(format: WorkbookFormat | number): SaveResultSerialises using an explicit container format (see WorkbookFormat).
saveWithDiagnosticssaveWithDiagnostics(format: WorkbookFormat | number): SaveDiagnosticsResultSerialises using an explicit format and reports loss/defer counters.
readDiagnosticsreadDiagnostics(): ReadDiagnosticsResultReturns the loss counters captured when this handle was loaded.
passthroughCountpassthroughCount(): NumberResultNumber of OOXML parts the reader carried through unchanged.
passthroughAtpassthroughAt(idx: number): PassthroughEntryReads the path of the idx-th passthrough part; kInvalidArgument when idx is out of range.

シートと構造 ​

名前シグネチャ説明
addSheetaddSheet(name: string): StatusAppends a sheet.
removeSheetremoveSheet(index: number): StatusRemoves the sheet at index.
renameSheetrenameSheet(index: number, newName: string): StatusRenames the sheet at index.
moveSheetmoveSheet(fromIdx: number, toIdx: number): StatusMoves the sheet from fromIdx to toIdx (post-removal index).
sheetCountsheetCount(): NumberResultNumber of sheets.
sheetNamesheetName(idx: number): StringResultDisplay name of the sheet at idx; kInvalidArgument when idx is out of range.
activeSheetactiveSheet(): AddStyleResultReturns { status, index }: the sheet the first <workbookView> marks active (activeTab); without workbook views (an XLSB load) the first tab-selected sheet; 0 when neither is recorded.
setActiveSheetsetActiveSheet(sheet: number): StatusMarks sheet sheet active so a save records it, creating a minimal <bookViews> when the workbook has none.
insertRowsinsertRows(sheet: number, row: number, count: number): StatusInserts count rows at row on sheet and rewrites cross-workbook references to follow the shift.
deleteRowsdeleteRows(sheet: number, row: number, count: number): StatusDeletes count rows starting at row on sheet.
insertColsinsertCols(sheet: number, col: number, count: number): StatusInserts count columns at col on sheet.
deleteColsdeleteCols(sheet: number, col: number, count: number): StatusDeletes count columns starting at col on sheet.

セル ​

名前シグネチャ説明
setNumbersetNumber(sheet: number, row: number, col: number, value: number): StatusStores a numeric literal.
setBoolsetBool(sheet: number, row: number, col: number, value: boolean): StatusStores a boolean literal.
setErrorsetError(sheet: number, row: number, col: number, errorCode: number): StatusStores a static Excel error literal; errorCode is an ErrorCode ordinal.
setTextsetText(sheet: number, row: number, col: number, text: string): StatusStores a text literal.
setCellPhoneticsetCellPhonetic(sheet: number, row: number, col: number, phonetic: string): StatusStores (or, when empty, clears) the cell's OOXML phonetic guide (<rPh>).
setCellPhoneticRunssetCellPhoneticRuns(sheet: number, row: number, col: number, runs: PhoneticRun[]): StatusStores (or, when empty, clears) the cell's phonetic guide as one <rPh> block per run.
setCellPhoneticPropertiessetCellPhoneticProperties(sheet: number, row: number, col: number, properties: PhoneticProperties): StatusStores how the cell's guide renders.
setBlanksetBlank(sheet: number, row: number, col: number): StatusStores a blank literal at the cell; equivalent to clearing it.
setFormulasetFormula(sheet: number, row: number, col: number, formula: string): StatusStores a formula.
getValuegetValue(sheet: number, row: number, col: number): CellResultReads the cell's cached value, as of the most recent recalc; call recalc first after mutating cells.
getFormulagetFormula(sheet: number, row: number, col: number): FormulaResultThe stored A1 formula (leading = included), or formula: null for a cell that holds none.
getFormulaR1C1getFormulaR1C1(sheet: number, row: number, col: number): FormulaResultThe formula in R1C1 notation relative to the cell, without a leading =; formula: null when the cell holds none.
getCellsInRangegetCellsInRange(sheet: number, range: MergeRange, cursor?: number | null, limit?: number | null): CellsInRangeResultOne page of the populated cells (formula or non-blank value, spill phantoms included) inside range, row-major.
getLambdaTextgetLambdaText(sheet: number, row: number, col: number): LambdaTextResultRenders the lambda value stored at (sheet, row, col) as Excel formula text.
getCellPhoneticgetCellPhonetic(sheet: number, row: number, col: number): StringResultReturns the cell's OOXML phonetic guide (<rPh>), or an empty string.
getCellPhoneticRunsgetCellPhoneticRuns(sheet: number, row: number, col: number): PhoneticRunsResultReturns the cell's <rPh> blocks with their spans.
getCellPhoneticPropertiesgetCellPhoneticProperties(sheet: number, row: number, col: number): PhoneticPropertiesResultReturns how the cell's guide renders.
cellCountcellCount(sheet: number): NumberResultNumber of written coordinates on sheet: cells set by any value, formula or format setter, setBlank, or a spill anchor commit or rejection (clearing keeps the slot), plus spill phantoms that have no stored slot.
cellAtcellAt(sheet: number, idx: number): CellEntryReads the idx-th counted coordinate, idx in [0, cellCount), ordered by (row, col) ascending.

再計算 ​

名前シグネチャ説明
recalcrecalc(): StatusRecalculates all dirty cells serially on the caller thread.
recalcParallelrecalcParallel(threadCount: number): ParallelRecalcResultRecalculates all dirty cells using the parallel SCC scheduler and returns per-call telemetry.
partialRecalcpartialRecalc(viewport: RecalcViewport): PartialRecalcResultRecalculates only cells touched by the supplied viewport.
setIterativesetIterative(enabled: boolean, maxIterations: number, maxChange: number): StatusSets iterative calculation.
getIterativegetIterative(): IterativeSettingsResultReads back the stored iterative-calculation settings.
setIterativeProgresssetIterativeProgress(callback: IterativeProgressCallback | null): StatusInstalls (or, when passed null, clears) a JS callback invoked after each Gauss-Seidel sweep.
calcModecalcMode(): NumberResult<CalcMode>Workbook-level calc mode (Excel <calcPr calcMode> policy).
setCalcModesetCalcMode(mode: CalcMode): StatusSets the calc mode; only AutoNoTable changes evaluation (recalc() skips the data tables).
fullPrecisionfullPrecision(): NumberResult<calcPr fullPrecision> as 0/1; 0 is "set precision as displayed".
setFullPrecisionsetFullPrecision(fullPrecision: boolean): Status
calcOnSavecalcOnSave(): NumberResult<calcPr calcOnSave> as 0/1 (default 1).
setCalcOnSavesetCalcOnSave(calcOnSave: boolean): Status
refModerefMode(): NumberResult<RefMode><calcPr refMode> as a RefMode code.
setRefModesetRefMode(mode: RefMode): StatusReturns kInvalidArgument for a value outside RefMode.
date1904date1904(): NumberResultThe 1904 date system flag (<workbookPr date1904>) as 0/1.
setDate1904setDate1904(date1904: boolean): StatusSwitches the date system without converting stored serials, so every date shifts by 1462 days.
pinnedNowpinnedNow(): PinnedNowResultThe workbook's pinned wall-clock reading as now, or now: null when it follows the host clock (the default).
setPinnedNowsetPinnedNow(year: number, month: number, day: number, hour: number, minute: number, second: number): StatusPins the workbook clock to a local civil instant; see pinnedNow for the accepted ranges.
clearPinnedNowclearPinnedNow(): StatusReleases the pin so the clock follows the host again.
addDataTableaddDataTable(sheet: number, spec: DataTableSpec): StatusCreates a data table over spec's result range.
getDataTablegetDataTable(sheet: number, row: number, col: number): DataTableResultReads the data table whose result range contains (row, col).
removeDataTableremoveDataTable(sheet: number, row: number, col: number): StatusRemoves the data table containing (row, col) and blanks its result cells.
recalcDataTablesrecalcDataTables(): StatusRecomputes every data table now, whatever the calc mode.

読み取り専用の評価 ​

名前シグネチャ説明
Module.evalFormulaevalFormula(formula: string): EvalResultConvenience: evaluates formula read-only against a fresh single-sheet workbook, anchored at Sheet1!A1.
evaluateFormulaTextevaluateFormulaText(sheet: number, row: number, col: number, formula: string): EvalResultEvaluates formula as if entered at (sheet, row, col) and returns a single scalar result, without mutating the workbook.
evaluateFormulaArrayevaluateFormulaArray(sheet: number, row: number, col: number, formula: string): EvalArrayResultEvaluates formula as if entered at (sheet, row, col) and returns the whole multi-cell result without mutating the workbook.
evaluateConditionalFormulaevaluateConditionalFormula(sheet: number, row: number, col: number, anchorRow: number, anchorCol: number, formula: string): EvalResultEvaluates formula as a conditional-formatting predicate anchored at (sheet, row, col), with relative references written relative to (anchorRow, anchorCol) (the CF-applied range's top-left).

プロファイル、ロケール、テキスト ​

名前シグネチャ説明
mergeFunctionMetadatamergeFunctionMetadata(base: FunctionMetadataResult, entry: FunctionMetadataEntry | undefined, locale: string): MergedFunctionMetadataResultMerges a host-supplied FunctionMetadataEntry over the engine's structural functionMetadata() result.
excelProfileIdexcelProfileId(): StringResult<ExcelProfileId>Full formula-behaviour profile id.
setExcelProfileIdsetExcelProfileId(profileId: ExcelProfileId): StatusSelects the formula-behaviour profile; kInvalidArgument for an id that is not an ExcelProfileId.
functionMetadatafunctionMetadata(name: string): FunctionMetadataResultReturns metadata for the function name (case-insensitive).
functionNamesfunctionNames(): ListResult<string>Returns every registered function's canonical name in ascending sort order.
localizeFunctionNamelocalizeFunctionName(canonicalName: string, profileId: ExcelProfileId): StringResultReturns the localized display name for the canonical function canonicalName under profileId.
canonicalizeFunctionNamecanonicalizeFunctionName(localizedName: string, profileId: ExcelProfileId): StringResultInverse of localizeFunctionName: returns the canonical English name for the localized function localizedName under profileId.
localizeFormulalocalizeFormula(formula: string, profileId: ExcelProfileId): StringResultRewrites stored (en-invariant) formula text into profileId's Excel spelling: function names, list / array separators, decimal points, booleans and error names.
canonicalizeFormulacanonicalizeFormula(formula: string, profileId: ExcelProfileId): StringResultInverse of localizeFormula: rewrites profileId-spelled formula text into the en-invariant form.
localeFactslocaleFacts(profileId: ExcelProfileId): LocaleFactsResultReturns the locale facts (separators, boolean names, date order, currency, error names) of profileId.
compareTextcompareText(a: string, b: string, strength: CollationStrength, profileId: ExcelProfileId): CompareTextResultCompares two texts under profileId and returns the sign of the result in order.
collationClassescollationClasses(values: Value[], strength: CollationStrength, profileId: ExcelProfileId): CollationClassesResultClassifies values into collation-ordered equivalence classes under profileId.

定義名 ​

名前シグネチャ説明
definedNameCountdefinedNameCount(): NumberResultNumber of defined names, workbook- and sheet-scoped alike.
definedNameAtdefinedNameAt(idx: number): DefinedNameEntryReads the idx-th defined name with its scope; kInvalidArgument when idx is out of range.
setDefinedNamesetDefinedName(name: string, formula: string): StatusAdds, replaces, or (when formula is empty) removes a workbook- scoped defined name.
setDefinedNameScopedsetDefinedNameScoped(name: string, formula: string, localSheetId: number): StatusAdds, replaces, or removes a defined name in workbook scope (-1) or a sheet-local scope (0-based sheet index).
setDefinedNameAttrssetDefinedNameAttrs(name: string, localSheetId: number, attrs: { comment?: string; hidden?: boolean }): StatusSets the comment and / or hidden of an existing defined name in the given scope; an omitted key leaves that attribute unchanged.

テーブル ​

名前シグネチャ説明
tableCounttableCount(): NumberResultNumber of worksheet tables in the workbook.
tableAttableAt(idx: number): TableEntryReads the idx-th table's identifying metadata; kInvalidArgument when idx is out of range.
createTablecreateTable(input: TableInput): AddStyleResultCreates a worksheet table; index of the result is its workbook-wide table index (see tableAt).
updateTableupdateTable(idx: number, input: TableUpdateInput): StatusPartially updates a table.
removeTableremoveTable(idx: number): StatusRemoves the table at idx.
tableStyleCounttableStyleCount(): NumberResultNumber of custom table / PivotTable styles (<tableStyles>).
getTableStylegetTableStyle(index: number): TableStyleResultReads the custom table style at index.
setTableStylesetTableStyle(style: TableStyle): StatusAdds a custom table style, or replaces the one with the same name (case-insensitive).
removeTableStyleremoveTableStyle(name: string): StatusRemoves the custom table style name.
getTableStyleDefaultsgetTableStyleDefaults(): TableStyleDefaultsResultReads the default table and PivotTable style names.
setTableStyleDefaultssetTableStyleDefaults(defaults: { tableStyle?: string; pivotStyle?: string }): StatusSets the default style names; an omitted field keeps its default and an empty string removes it.

依存関係、スピル、外部リンク ​

名前シグネチャ説明
getExternalLinksgetExternalLinks(): ListResult<ExternalLinkRecord>Returns every external-link record carried by the workbook in <externalReferences> document order.
precedentsprecedents(sheet: number, row: number, col: number, depth: number): ListResult<CellNode>Returns the cells that (sheet, row, col) directly reads (1-step precedents) when depth <= 1, or every cell reached within depth BFS steps otherwise.
dependentsdependents(sheet: number, row: number, col: number, depth: number): ListResult<CellNode>Returns the cells that read (sheet, row, col) directly (1-step dependents).
spillInfospillInfo(sheet: number, row: number, col: number): SpillInfoReturns dynamic-array spill info for (sheet, row, col).

シートの表示と保護 ​

名前シグネチャ説明
getCellShowPhoneticgetCellShowPhonetic(sheet: number, row: number, col: number): CellShowPhoneticResultReads the cell's "Show Phonetic" flag (<c ph="1">); false for an absent cell.
setCellShowPhoneticsetCellShowPhonetic(sheet: number, row: number, col: number, show: boolean): StatusSets the cell's "Show Phonetic" display flag.
getSheetViewgetSheetView(sheet: number): SheetViewResultReads the full per-sheet view (zoom, freeze, tab-hidden, and the display / orientation flags).
setSheetZoomsetSheetZoom(sheet: number, zoomScale: number): StatusSets the sheet zoom percentage (clamped to [10, 400]).
setSheetFreezesetSheetFreeze(sheet: number, freezeRows: number, freezeCols: number): StatusSets the frozen pane in (rows, cols).
setSheetTabHiddensetSheetTabHidden(sheet: number, hidden: boolean): StatusSets the sheet tab's hidden flag — the two-state view of setSheetVisibility.
setSheetVisibilitysetSheetVisibility(sheet: number, visibility: SheetVisibility): StatusSets the sheet tab's visibility to one of the three states.
setSheetShowGridLinessetSheetShowGridLines(sheet: number, show: boolean): StatusSets the sheet's showGridLines flag.
setSheetShowRowColHeaderssetSheetShowRowColHeaders(sheet: number, show: boolean): StatusSets the sheet's showRowColHeaders flag.
setSheetShowZerossetSheetShowZeros(sheet: number, show: boolean): StatusSets the sheet's showZeros flag.
setSheetShowFormulassetSheetShowFormulas(sheet: number, show: boolean): StatusSets the sheet's showFormulas flag.
setSheetShowOutlineSymbolssetSheetShowOutlineSymbols(sheet: number, show: boolean): StatusSets the sheet's showOutlineSymbols flag.
setSheetRightToLeftsetSheetRightToLeft(sheet: number, rightToLeft: boolean): StatusSets the sheet's rightToLeft flag.
setSheetTabSelectedsetSheetTabSelected(sheet: number, selected: boolean): StatusSets the sheet's tabSelected flag.
setSheetTopLeftsetSheetTopLeft(sheet: number, row: number, col: number): StatusSets the sheet view's scroll origin (<sheetView topLeftCell>).
setSheetPaneTopLeftsetSheetPaneTopLeft(sheet: number, row: number, col: number): StatusSets the first visible cell of a frozen or split view's lower-right pane.
setSheetSplitsetSheetSplit(sheet: number, xTwips: number, yTwips: number): StatusSplits the view at xTwips / yTwips (0 for none on that axis; 0, 0 removes the split).
getSheetSelectiongetSheetSelection(sheet: number): SheetSelectionResultReads the active pane's selection (active cell and ranges).
setSheetSelectionsetSheetSelection(sheet: number, selection: SheetSelection): StatusReplaces the active pane's selection.
setSheetViewModesetSheetViewMode(sheet: number, mode: string): StatusSets the sheet's <sheetView view="..."> mode: "", "pageBreakPreview", or "pageLayout".
getSheetProtectiongetSheetProtection(sheet: number): SheetProtectionResultReads the sheet's <sheetProtection> flags.
setSheetProtectionsetSheetProtection(sheet: number, protection: SheetProtection): StatusReplaces the sheet's <sheetProtection> flags wholesale.
getWorkbookProtectiongetWorkbookProtection(): WorkbookProtectionResultReads the workbook's <workbookProtection>; every field is zero or empty when absent.
setWorkbookProtectionsetWorkbookProtection(protection: WorkbookProtection): StatusReplaces the modelled <workbookProtection> attributes.
getProtectedRangesgetProtectedRanges(sheet: number): ListResult<ProtectedRange>Returns the protected ranges of sheet in file order.
addProtectedRangeaddProtectedRange(sheet: number, range: ProtectedRange): StatusAppends a protected range.
updateProtectedRangeupdateProtectedRange(sheet: number, index: number, range: ProtectedRange): StatusReplaces protected range index.
removeProtectedRangeremoveProtectedRange(sheet: number, index: number): StatusRemoves protected range index.

行、列、ジオメトリ ​

名前シグネチャ説明
setTableColumnTotalssetTableColumnTotals(idx: number, column: number, totals: TableColumnTotalsInput): StatusSets column column's totals-row function and label.
getSheetColumnsgetSheetColumns(sheet: number): ColumnsResultReturns the column-layout overrides on sheet in storage order.
setColumnWidthsetColumnWidth(sheet: number, first: number, last: number, width: number): StatusSets / replaces the column width override on [first, last].
setColumnHiddensetColumnHidden(sheet: number, first: number, last: number, hidden: boolean): StatusSets / replaces the column hidden flag on [first, last].
setColumnOutlinesetColumnOutline(sheet: number, first: number, last: number, level: number): StatusSets / replaces the column outline level on [first, last].
setColumnCollapsedsetColumnCollapsed(sheet: number, first: number, last: number, collapsed: boolean): StatusSets / clears the column collapsed flag on [first, last].
setColumnStylesetColumnStyle(sheet: number, first: number, last: number, xfIndex: number): StatusSets / replaces the cell-style XF on [first, last]; index 0 is the default XF.
clearColumnStyleclearColumnStyle(sheet: number, first: number, last: number): StatusRemoves the cell-style XF on [first, last], retaining other column attributes.
getSheetRowOverridesgetSheetRowOverrides(sheet: number): RowsResultReturns the row-layout overrides on sheet.
setRowHeightsetRowHeight(sheet: number, row: number, height: number): StatusSets / replaces the row height override at row.
setRowHiddensetRowHidden(sheet: number, row: number, hidden: boolean): StatusSets / replaces the row hidden flag at row.
setRowOutlinesetRowOutline(sheet: number, row: number, level: number): StatusSets / replaces the row outline level at row.
setRowCollapsedsetRowCollapsed(sheet: number, row: number, collapsed: boolean): StatusSets / clears the row collapsed flag at row.
setRowStylesetRowStyle(sheet: number, first: number, last: number, xfIndex: number): StatusSets / replaces the cell-style XF of the inclusive row span first..last; index 0 is the default XF.
clearRowStyleclearRowStyle(sheet: number, first: number, last: number): StatusRemoves the cell-style XF of the inclusive row span first..last, retaining other row attributes.
clearRowHeightclearRowHeight(sheet: number, row: number): StatusRemoves the height override at row, returning it to the sheet default.
clearColumnWidthclearColumnWidth(sheet: number, first: number, last: number): StatusRemoves the width override on columns first..last, returning them to the sheet default width.
getSheetFormatDefaultsgetSheetFormatDefaults(sheet: number): SheetFormatDefaultsResultReads the sheet's default column / row metrics.
setSheetFormatDefaultssetSheetFormatDefaults(sheet: number, defaults: Partial<SheetFormatDefaults>): StatusReplaces the sheet's default column / row metrics.
getCellRectPtgetCellRectPt(sheet: number, range: MergeRange, mode: GeometryMode): CellRectResultRectangle covering the inclusive cell range, in points from the top-left of A1.
getColumnWidthPtgetColumnWidthPt(sheet: number, col: number, mode: GeometryMode): NumberResultEffective column width in points; zero when hidden.
getRowHeightPtgetRowHeightPt(sheet: number, row: number): NumberResultEffective row height in points; zero when hidden.
getWidthModelgetWidthModel(sheet: number, mode: GeometryMode): WidthModelResultThe character-unit to point conversion model for the workbook's Normal font.
columnCharsToPtcolumnCharsToPt(sheet: number, mode: GeometryMode, chars: number): NumberResultConverts a stored column width (padding included) to points, snapped to whole screen pixels.
columnPtToCharscolumnPtToChars(sheet: number, mode: GeometryMode, pt: number): NumberResultInverse of columnCharsToPt: the stored width Excel writes for a column of pt.

表示テキスト ​

名前シグネチャ説明
getDisplayTextgetDisplayText(sheet: number, row: number, col: number): DisplayTextResultThe text Excel displays for the cell, from its value and number format under the workbook's date system.
formatValueformatValue(value: Value, formatCode: string): DisplayTextResultRenders value (blank, number, boolean, text or error) under the stored-form number format formatCode; empty means General.

スタイル ​

名前シグネチャ説明
rangeStyleBasesrangeStyleBases(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number): RangeStyleBasesResultLists, ascending, every cell-XF index some cell of the selection resolves to: the XFs of cells that carry their own, then the row, column or default (0) style of the rest.
remapRangeStyleremapRangeStyle(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number, fromXfs: number[], toXfs: number[]): StatusSecond step of the attribute patch: every cell of the selection ends at toXfs[i] where it resolved to fromXfs[i] before; an XF not listed is kept.
snapshotRangeStylesnapshotRangeStyle(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number): RangeStyleSnapshotResultCaptures the style state of a selection (covered column or row styles and every stored cell's XF) as opaque, versioned bytes for restoreRangeStyle; use it to undo a remapRangeStyle.
restoreRangeStylerestoreRangeStyle(sheet: number, bytes: Uint8Array): StatusPuts a snapshotRangeStyle capture back exactly.
getCellXfIndexgetCellXfIndex(sheet: number, row: number, col: number): CellXfIndexResultReturns { status, xfIndex } for the cell at (sheet, row, col).
setCellXfIndexsetCellXfIndex(sheet: number, row: number, col: number, xfIndex: number): StatusPersists xfIndex on the cell at (sheet, row, col).
clearCellXfIndexclearCellXfIndex(sheet: number, row: number, col: number): StatusRemoves the direct style assignment from the cell at (sheet, row, col) so a blank cell inherits its row / column style again.
setRangeXfIndexsetRangeXfIndex(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number, xfIndex: number): StatusApplies xfIndex across an inclusive rectangle, materialising blank cells so an empty ruled box renders.
getCellXfgetCellXf(xfIndex: number): CellXfResultReturns the resolved XF record at xfIndex.
getFontgetFont(fontIndex: number): FontResultReturns the font record at fontIndex, including its ColorSpec selector.
getFillgetFill(fillIndex: number): FillResultReturns the fill record at fillIndex, including its ColorSpec selectors.
getBordergetBorder(borderIndex: number): BorderResultReturns the border record at borderIndex, including its ColorSpec selectors.
getNumFmtgetNumFmt(numFmtId: number): NumFmtResultReturns the format string registered for numFmtId.
getDxfgetDxf(dxfIndex: number): DxfResultReturns the differential-format record referenced by CF dxfId.
addFontaddFont(record: FontRecord): AddStyleResultAdds a font (deduplicating against existing entries) and returns the resolved index.
setFontsetFont(fontIndex: number, record: FontRecord): StatusOverwrites the font at fontIndex in place.
setDefaultFontsetDefaultFont(record: FontRecord): StatusDeclares the workbook's default font: font 0, the record an unstyled cell resolves to.
addFilladdFill(record: FillRecord): AddStyleResultAdds a fill (deduplicating against existing entries).
addBorderaddBorder(record: BorderRecord): AddStyleResultAdds a border (deduplicating against existing entries).
addNumFmtaddNumFmt(formatCode: string): AddNumFmtResultAdds a number-format code.
addXfaddXf(record: CellXf): AddStyleResultAdds an <xf> record (deduplicating against existing entries).
addDxfaddDxf(record: DxfRecord): AddStyleResultAdds a <dxf> differential-format record for conditional formats.
fontCountfontCount(): NumberResultReturns the number of font records currently registered.
fillCountfillCount(): NumberResultReturns the number of fill records currently registered.
borderCountborderCount(): NumberResultReturns the number of border records currently registered.
xfCountxfCount(): NumberResultReturns the number of <xf> records currently registered.
dxfCountdxfCount(): NumberResultReturns the number of <dxf> records available for CF dxfId.
cellStyleCountcellStyleCount(): NumberResultReturns the number of named cell styles (<cellStyle> entries) registered.
cellStyleXfCountcellStyleXfCount(): NumberResultReturns the number of <cellStyleXfs> records — the named-style xf table referenced by CellStyleResult.xfId.
getCellStylegetCellStyle(index: number): CellStyleResultReturns the named cell style at index.
getCellStyleXfgetCellStyleXf(index: number): CellXfResultReturns the named-style xf record at index.
addCellStyleXfaddCellStyleXf(record: CellXf): AddStyleResultAppends (deduplicating) a named-style xf and returns its <cellStyleXfs> index, which is what setCellStyle and CellXf.xfId reference.
setCellStylesetCellStyle(record: CellStyleRecord): StatusAdds or replaces the <cellStyle> entry named record.name.
removeCellStyleremoveCellStyle(name: string): StatusRemoves the <cellStyle> named name; cell formats that used it are repointed at the Normal style.
getEffectiveStylegetEffectiveStyle(sheet: number, row: number, col: number): EffectiveStyleResultThe formatting a cell shows: the xf chosen from cell, row, column or the default, with its colours resolved.

テーマと色 ​

名前シグネチャ説明
getThemegetTheme(): ThemeResultThe 12 theme colours (clrScheme order) and the theme typefaces.
setThemeColorssetThemeColors(colors: number[]): StatusRewrites the 12 scheme colours (clrScheme order, alpha ignored).
setThemeFontssetThemeFonts(fonts: ThemeFonts): StatusRewrites the theme's major and minor typefaces.
setThemeScriptFontsetThemeScriptFont(major: boolean, script: string, typeface: string): StatusSets one script's typeface in the major (major true) or minor font set; other scripts are unchanged and an unknown script is appended.
resetThemeresetTheme(): StatusRemoves the theme part so the workbook reports the default theme (source is Default).
resolveColorresolveColor(spec: ColorSpec, context: ColorContext): ResolvedColorResultResolves a colour specification to ARGB against the theme and the indexed palette; context decides what an automatic colour means.

セルの結合 ​

名前シグネチャ説明
addMergeaddMerge(sheet: number, range: MergeRange): StatusAdds a merge range to sheet.
removeMergeremoveMerge(sheet: number, range: MergeRange): StatusRemoves every merge that overlaps range (inclusive).
removeMergeAtremoveMergeAt(sheet: number, index: number): StatusRemoves the merge at index.
clearMergesclearMerges(sheet: number): StatusDrops every merge on sheet.
getMergesgetMerges(sheet: number): ListResult<MergeRange>Returns every merge range on sheet as a JS array.
getMergesInRangegetMergesInRange(sheet: number, range: MergeRange): ListResult<MergeRange>Returns the merge ranges on sheet that intersect range, in storage order.
名前シグネチャ説明
getCommentgetComment(sheet: number, row: number, col: number): CommentEntry | nullReturns the cell comment at (sheet, row, col), or null when absent.
getCommentResultgetCommentResult(sheet: number, row: number, col: number): CommentResultReturns a comment lookup result that distinguishes absence from an invalid sheet or handle.
getCommentsgetComments(sheet: number): ListResult<SheetCommentEntry>Returns every comment on sheet, including comments anchored on cells that carry no value.
setCommentsetComment(sheet: number, row: number, col: number, author: string, text: string): StatusSets / replaces the cell comment.
getCommentVisiblegetCommentVisible(sheet: number, row: number, col: number): NumberResultWhether the note at (sheet, row, col) is shown without hovering (value 0 or 1).
setCommentVisiblesetCommentVisible(sheet: number, row: number, col: number, visible: boolean): StatusShows or hides the note at (sheet, row, col); its box geometry is kept.
addHyperlinkaddHyperlink(sheet: number, row: number, col: number, target: string, display: string, tooltip: string, location: string): StatusAppends a hyperlink to sheet.
addHyperlinkRangeaddHyperlinkRange(sheet: number, row: number, col: number, lastRow: number, lastCol: number, target: string, display: string, tooltip: string, location: string): StatusAppends a hyperlink covering the inclusive rectangle from (row, col) through (lastRow, lastCol).
removeHyperlinkremoveHyperlink(sheet: number, row: number, col: number): StatusRemoves every hyperlink anchored at (row, col).
removeHyperlinkAtremoveHyperlinkAt(sheet: number, index: number): StatusRemoves the hyperlink at index.
clearHyperlinksclearHyperlinks(sheet: number): StatusDrops every hyperlink on sheet.
getHyperlinksgetHyperlinks(sheet: number): ListResult<HyperlinkEntry>Returns every hyperlink on sheet as a JS array.

スレッド形式のコメントと人物 ​

名前シグネチャ説明
getThreadedCommentsgetThreadedComments(sheet: number): ThreadedCommentsResultLists the sheet's threaded comments, replies included.
addThreadedCommentaddThreadedComment(sheet: number, comment: Partial<ThreadedComment> & Pick<ThreadedComment, 'id' | 'text'>): StatusAdds a threaded comment.
editThreadedCommenteditThreadedComment(sheet: number, id: string, text: string, mentions: Mention[]): StatusReplaces the text and mentions of the comment with id.
setThreadResolvedsetThreadResolved(sheet: number, threadId: string, done: boolean): StatusSets the resolved state of the thread opened by threadId.
removeThreadedCommentremoveThreadedComment(sheet: number, id: string): StatusRemoves a comment; removing an opening comment removes its thread.
getPersonsgetPersons(): PersonsResultLists the workbook's persons.
addPersonaddPerson(person: Person): StatusAppends a person to the workbook's person list.
removePersonremovePerson(id: string): StatusFails while a threaded comment or mention still names the person.

オートフィルター ​

名前シグネチャ説明
getSheetAutoFilterXmlgetSheetAutoFilterXml(sheet: number): SheetAutoFilterXmlResultReads the complete worksheet-level <autoFilter> XML fragment.
setSheetAutoFilterXmlsetSheetAutoFilterXml(sheet: number, xml: string): StatusReplaces the worksheet-level <autoFilter> XML fragment; empty clears it.
getAutoFiltergetAutoFilter(sheet: number): AutoFilterResultReads the sheet's typed AutoFilter; autoFilter is null when absent.
setAutoFiltersetAutoFilter(sheet: number, filter: AutoFilter): StatusReplaces the sheet AutoFilter and its hidden _xlnm._FilterDatabase name.
removeAutoFilterremoveAutoFilter(sheet: number): StatusRemoves the sheet AutoFilter.
applyAutoFilterapplyAutoFilter(sheet: number): StatusHides every body row the criteria exclude and shows the rest, as Excel's Reapply does.
clearAutoFilterclearAutoFilter(sheet: number): StatusDrops every column criterion and shows all body rows.
evaluateAutoFilterevaluateAutoFilter(sheet: number): AutoFilterEvalResultEvaluates the sheet AutoFilter without changing the sheet.
getTableAutoFiltergetTableAutoFilter(table: number): AutoFilterResultTable counterparts, addressed by the workbook-wide table index (tableAt).
setTableAutoFiltersetTableAutoFilter(table: number, filter: AutoFilter): StatusReplaces the table's AutoFilter.
removeTableAutoFilterremoveTableAutoFilter(table: number): StatusRemoves the table's AutoFilter.
applyTableAutoFilterapplyTableAutoFilter(table: number): StatusHides every body row the table's criteria exclude and shows the rest.
clearTableAutoFilterclearTableAutoFilter(table: number): StatusDrops every column criterion and shows all body rows.
evaluateTableAutoFilterevaluateTableAutoFilter(table: number): AutoFilterEvalResultEvaluates the table's AutoFilter without changing the sheet.

データの入力規則 ​

名前シグネチャ説明
validateValuevalidateValue(sheet: number, row: number, col: number, value: Value): ValidationOutcomeResultChecks value against the validation rule covering (row, col) without storing it.
listInvalidCellslistInvalidCells(sheet: number, cursor?: number | null, limit?: number | null): CellsInRangeResultEnumerates populated cells whose value fails their validation rule, in row-major order, one page at a time; paging as getCellsInRange.
getValidationsgetValidations(sheet: number): ListResult<DataValidationEntry>Returns every data-validation rule on sheet in storage order.
addValidationaddValidation(sheet: number, validation: DataValidationInput): StatusAppends a data-validation rule to sheet.
removeValidationAtremoveValidationAt(sheet: number, index: number): StatusRemoves the validation rule at index.
clearValidationsclearValidations(sheet: number): StatusDrops every validation rule on sheet.

条件付き書式 ​

名前シグネチャ説明
evaluateCfRangeevaluateCfRange(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number, todaySerial: number): CfRangeResultEvaluates every CF block on sheet against the inclusive range [(firstRow, firstCol), (lastRow, lastCol)].
getConditionalFormatsgetConditionalFormats(sheet: number): ListResult<ConditionalFormatEntry>Returns every CF rule on sheet in flattened priority order.
addConditionalFormataddConditionalFormat(sheet: number, rule: ConditionalFormatInput): AddStyleResultAppends a new single-rule <conditionalFormatting> block to sheet, including visual rules when their payload object is supplied.
removeConditionalFormatAtremoveConditionalFormatAt(sheet: number, index: number): StatusRemoves the CF rule at index (flattened order).
clearConditionalFormatsclearConditionalFormats(sheet: number): StatusDrops every CF block on sheet.

画像と描画オブジェクト ​

名前シグネチャ説明
probeImageprobeImage(bytes: Uint8Array): ImageInfoResultSniffs the format and pixel size of PNG, JPEG, GIF or BMP bytes without touching the workbook.
listDrawingObjectslistDrawingObjects(sheet: number): ListResult<DrawingObject>Lists the anchored objects of the sheet's drawing, in document order.
getImagegetImage(sheet: number, objectId: number): ImageResultReturns a copy of the media bytes of the picture objectId.
insertImageinsertImage(sheet: number, bytes: Uint8Array, opts?: ImageInsertOptions): InsertImageResultInserts bytes as a picture; existing drawing content is kept.
removeDrawingremoveDrawing(sheet: number, objectId: number): StatusRemoves the picture or chart objectId and the parts only it reaches; other drawing content is kept.
setDrawingAnchorsetDrawingAnchor(sheet: number, objectId: number, placement: ImagePlacement): StatusMoves and resizes the picture or chart objectId, keeping its id, crop, rotation and every other element.
setDrawingZOrdersetDrawingZOrder(sheet: number, objectId: number, index: number): StatusMakes the picture or chart objectId item index of listDrawingObjects, whose order is the stacking order (0 is the back).
snapshotDrawingsnapshotDrawing(sheet: number, objectId: number): ImageSnapshotResultCaptures the picture or chart objectId with its list position, element and dependent parts as opaque bytes for restoreDrawing.
restoreDrawingrestoreDrawing(sheet: number, bytes: Uint8Array, opts?: RestoreImageOptions): InsertImageResultPuts a snapshotDrawing capture back and returns the object's id: in place of an object with the same id at its recorded position, or as a copy on top with newId.
listShapeslistShapes(sheet: number): ListResult<Shape>Lists the shapes, connectors and groups of the sheet's drawing in z-order (back first); children of a group are not listed.
insertShapeinsertShape(sheet: number, spec: ShapeInput): InsertImageResultAppends a shape on top and returns its id; a sheet without a drawing gets one and existing drawing content is kept.
updateShapeupdateShape(sheet: number, objectId: number, spec: ShapeInput): StatusApplies the fields spec names to the shape objectId; every other part of its XML is kept.
removeShaperemoveShape(sheet: number, objectId: number): StatusRemoves the shape, connector or group objectId with its children.
listSlicerslistSlicers(sheet: number): ListResult<Slicer>Lists the table slicers the sheet hosts; slicers over a pivot cache are not listed.
addSliceraddSlicer(sheet: number, table: number, column: number, spec: SlicerInput): InsertImageResultAdds a slicer over column column (0-based) of table table and returns its frame's id.
updateSlicerupdateSlicer(sheet: number, index: number, spec: SlicerInput): StatusApplies the fields spec names to slicer index; every other part of its XML is kept.
removeSlicerremoveSlicer(sheet: number, index: number): StatusRemoves slicer index with its drawing frame, and its cache when no other slicer uses it.
listSparklineGroupslistSparklineGroups(sheet: number): ListResult<SparklineGroup>Lists the sheet's sparkline groups in document order with their sparklines.
addSparklineGroupaddSparklineGroup(sheet: number, spec: SparklineGroupInput): StatusAppends a group; spec.sparklines must hold at least one sparkline.
updateSparklineGroupupdateSparklineGroup(sheet: number, index: number, spec: SparklineGroupInput): StatusRewrites the modelled attributes, colours and date range of group index; its sparklines and unmodelled XML are kept.
setSparklineGroupSparklinessetSparklineGroupSparklines(sheet: number, index: number, sparklines: Sparkline[]): StatusReplaces the sparklines of group index.
removeSparklineGroupremoveSparklineGroup(sheet: number, index: number): StatusRemoves group index.

グラフ ​

名前シグネチャ説明
getChartgetChart(sheet: number, objectId: number): ChartResultReads the typed view of the chart objectId.
getChartDatagetChartData(sheet: number, objectId: number): ChartDataResultResolves the chart's series against the current cell values.
previewChartDatapreviewChartData(sheet: number, objectId: number, overrides: ChartPreviewOverrides): ChartDataResultResolves the series as if overrides were applied to the chart; the workbook is not changed.
insertChartinsertChart(sheet: number, options: ChartInsertOptions): InsertChartResultCreates a chart with filled caches and returns its object id.
setChartTypesetChartType(sheet: number, objectId: number, plot: number, kind: ChartInsertKind, grouping?: ChartGrouping): StatusReplaces plot group plot with kind; grouping applies to column, bar, line and area.
setChartTitlesetChartTitle(sheet: number, objectId: number, title: string | null | { kind: ChartTitleKind; text?: string; formula?: string }): StatusSets the chart title text, or removes the title with null.
setChartLegendsetChartLegend(sheet: number, objectId: number, position: ChartLegendPosition, overlay: boolean, hiddenSeries?: number[]): StatusSets the legend position (None removes it) and overlay; hiddenSeries (series c:idx values) replaces the hidden legend entries when given.
setChartAxissetChartAxis(sheet: number, objectId: number, axisId: number, patch: ChartAxisPatch): StatusPatches the axis axisId.
setChartDisplaysetChartDisplay(sheet: number, objectId: number, blanksAs: ChartBlanksAs, plotVisibleOnly: boolean | null): StatusSets how blanks are plotted and whether hidden cells are skipped; Absent and null remove the element.
setChartSeriessetChartSeries(sheet: number, objectId: number, plot: number, seriesIdx: number, patch: ChartSeriesPatch): StatusPatches the series with c:idx seriesIdx of plot group plot.
setChartPointsetChartPoint(sheet: number, objectId: number, plot: number, seriesIdx: number, pointIdx: number, patch: ChartPointPatch | null): StatusPatches a data point; null or an empty patch removes its formatting.
setChartPlotsetChartPlot(sheet: number, objectId: number, plot: number, patch: ChartPlotPatch): StatusPatches plot group plot.
setChartFiltersetChartFilter(sheet: number, objectId: number, hiddenSeries: number[], hiddenCategories: number[]): StatusReplaces the chart filter: series by c:idx and categories by position are hidden.
addChartSeriesaddChartSeries(sheet: number, objectId: number, plot: number, patch: ChartSeriesPatch): AddChartSeriesResultAppends a series to plot group plot; the patch must set values (y for a scatter plot).
removeChartSeriesremoveChartSeries(sheet: number, objectId: number, plot: number, seriesIdx: number): StatusRemoves the series with c:idx seriesIdx from plot group plot.
setChartSourcesetChartSource(sheet: number, objectId: number, source: string, direction: ChartSeriesDirection, headerRow?: boolean, headerColumn?: boolean): StatusRebuilds every series from source, keeping the chart kind and each series' formatting by idx, and clears the filter.

印刷設定とページ分割 ​

名前シグネチャ説明
paginatepaginate(sheet: number): PaginationResultComputes print-area page breaks and physical page count for sheet.
getSheetPageSetupXmlgetSheetPageSetupXml(sheet: number): SheetPrintXmlResultReads the worksheet's <pageSetup> fragment; empty when absent.
setSheetPageSetupXmlsetSheetPageSetupXml(sheet: number, xml: string): StatusReplaces <pageSetup>; empty removes it and restores the defaults.
getSheetPageMarginsXmlgetSheetPageMarginsXml(sheet: number): SheetPrintXmlResultReads the worksheet's <pageMargins> fragment; empty when absent.
setSheetPageMarginsXmlsetSheetPageMarginsXml(sheet: number, xml: string): StatusReplaces <pageMargins>; empty removes it.
getSheetPrintOptionsXmlgetSheetPrintOptionsXml(sheet: number): SheetPrintXmlResultReads the worksheet's <printOptions> fragment; empty when absent.
setSheetPrintOptionsXmlsetSheetPrintOptionsXml(sheet: number, xml: string): StatusReplaces <printOptions>; empty removes it.
getSheetHeaderFooterXmlgetSheetHeaderFooterXml(sheet: number): SheetPrintXmlResultReads the worksheet's <headerFooter> fragment; empty when absent.
setSheetHeaderFooterXmlsetSheetHeaderFooterXml(sheet: number, xml: string): StatusReplaces <headerFooter>; empty removes it.
getSheetSheetPrXmlgetSheetSheetPrXml(sheet: number): SheetPrintXmlResultReads the worksheet's <sheetPr> fragment; empty when absent.
setSheetSheetPrXmlsetSheetSheetPrXml(sheet: number, xml: string): StatusReplaces <sheetPr>; empty removes it.
setSheetFitToPagesetSheetFitToPage(sheet: number, enabled: boolean): StatusSets or clears <sheetPr><pageSetUpPr fitToPage> without disturbing anything else <sheetPr> carries.
getSheetPrintAreagetSheetPrintArea(sheet: number): SheetPrintAreaResultReads _xlnm.Print_Area as comma-separated A1 ranges.
setSheetPrintAreasetSheetPrintArea(sheet: number, rangesA1: string): StatusWrites _xlnm.Print_Area from one or more comma-separated A1 ranges ("A1:F8", "A1:B10,D5:E20", "A:D").
getSheetPrintTitlesgetSheetPrintTitles(sheet: number): SheetPrintTitlesResultReads _xlnm.Print_Titles as a row span and a column span.
setSheetPrintTitlessetSheetPrintTitles(sheet: number, repeatRows: string, repeatCols: string): StatusWrites _xlnm.Print_Titles.
addSheetRowBreakaddSheetRowBreak(sheet: number, row: number, manual: boolean): StatusUpserts a row break before row, spanning the whole sheet.
addSheetColBreakaddSheetColBreak(sheet: number, col: number, manual: boolean): StatusUpserts a column break before col, spanning the whole sheet.
removeSheetRowBreakremoveSheetRowBreak(sheet: number, row: number): StatusRemoves the row break at row.
removeSheetColBreakremoveSheetColBreak(sheet: number, col: number): StatusRemoves the column break at col.
clearSheetBreaksclearSheetBreaks(sheet: number): StatusRemoves every manual break on both axes.
getSheetRowBreaksgetSheetRowBreaks(sheet: number): SheetPageBreaksResultReturns the row breaks, ascending by row.
getSheetColBreaksgetSheetColBreaks(sheet: number): SheetPageBreaksResultReturns the column breaks, ascending by column.
setSheetPageSetupsetSheetPageSetup(sheet: number, setup: PageSetupInput): StatusApplies a partial <pageSetup> update.
setSheetPageMarginssetSheetPageMargins(sheet: number, margins: PageMarginsInput): StatusApplies a partial <pageMargins> update, in inches.
setSheetPrintOptionssetSheetPrintOptions(sheet: number, options: PrintOptionsInput): StatusApplies a partial <printOptions> update.
setSheetHeaderFootersetSheetHeaderFooter(sheet: number, headerFooter: HeaderFooterInput): StatusApplies a partial <headerFooter> update.
getSheetPageSetupgetSheetPageSetup(sheet: number): SheetPageSetupResultReads the effective page setup and which attributes state it.
getSheetPageMarginsgetSheetPageMargins(sheet: number): SheetPageMarginsResultReads the effective page margins, in inches.

ピボットテーブル ​

名前シグネチャ説明
pivotCountpivotCount(sheet: number): NumberResultReturns the number of PivotTables anchored on sheet.
pivotLayoutpivotLayout(sheet: number, pivotIndex: number): PivotLayoutResultEvaluates and projects a PivotTable into concrete grid cells.
pivotCreatepivotCreate(sheet: number, name: string, cacheId: number, anchorRow: number, anchorCol: number): AddStyleResultCreates a new empty pivot table.
pivotRemovepivotRemove(sheet: number, pivotIdx: number): StatusRemoves the pivot table at pivotIdx.
pivotSetNamepivotSetName(sheet: number, pivotIdx: number, name: string): StatusRenames the pivot table.
pivotSetAnchorpivotSetAnchor(sheet: number, pivotIdx: number, anchorRow: number, anchorCol: number, spanRows: number, spanCols: number): StatusUpdates the pivot's anchor cell and span.
pivotSetGrandTotalspivotSetGrandTotals(sheet: number, pivotIdx: number, rowsEnabled: boolean, colsEnabled: boolean): StatusToggles the row / column grand total bands on the pivot.
pivotSetStyleInfopivotSetStyleInfo(sheet: number, pivotIdx: number, info: PivotStyleInfo): StatusSets the pivot's table style and toggles, making the style element present.
pivotGetLayoutpivotGetLayout(sheet: number, pivotIdx: number): PivotReportLayoutResultReads the pivot's compact / tabular / outline report layout.
pivotSetLayoutpivotSetLayout(sheet: number, pivotIdx: number, layout: PivotReportLayout): StatusSets the pivot's compact / tabular / outline report layout.
pivotNamepivotName(sheet: number, pivotIdx: number): StringResultReads the pivot's name.
pivotGetGrandTotalspivotGetGrandTotals(sheet: number, pivotIdx: number): PivotGrandTotalsResultReads the row / column grand total flags pivotSetGrandTotals writes.
pivotGetStyleInfopivotGetStyleInfo(sheet: number, pivotIdx: number): PivotStyleInfoResultReads the table style pivotSetStyleInfo writes.
pivotRowFieldOrderpivotRowFieldOrder(sheet: number, pivotIdx: number): PivotFieldOrderResultReads the row-axis field order (the list pivotSetRowFieldOrder takes).
pivotColFieldOrderpivotColFieldOrder(sheet: number, pivotIdx: number): PivotFieldOrderResultReads the column-axis field order.
pivotFieldCountpivotFieldCount(sheet: number, pivotIdx: number): NumberResultNumber of fields configured on the pivot.
pivotFieldAddpivotFieldAdd(sheet: number, pivotIdx: number, spec: PivotFieldSpec): AddStyleResultPlaces a field on the pivot.
pivotFieldAtpivotFieldAt(sheet: number, pivotIdx: number, fieldIdx: number): PivotFieldResultReads the definition of field fieldIdx.
pivotFieldItemCountpivotFieldItemCount(sheet: number, pivotIdx: number, fieldIdx: number): NumberResultNumber of items in the field's item list (what pivotFieldAddItem / pivotFieldAddItemAt append to).
pivotFieldItemAtpivotFieldItemAt(sheet: number, pivotIdx: number, fieldIdx: number, itemIdx: number): PivotItemResultReads item itemIdx of the field; the index pivotFieldSetItemVisible takes.
pivotFieldClearpivotFieldClear(sheet: number, pivotIdx: number): StatusDrops every field from the pivot, emptying the row and column orders.
pivotFieldSetAxispivotFieldSetAxis(sheet: number, pivotIdx: number, fieldIdx: number, axis: PivotAxis | -1): StatusSets the axis of pivot field fieldIdx.
pivotFieldSetSortpivotFieldSetSort(sheet: number, pivotIdx: number, fieldIdx: number, order: PivotSortOrder, byField: string): StatusSets the sibling order of pivot field fieldIdx.
pivotFieldSetSubtotalToppivotFieldSetSubtotalTop(sheet: number, pivotIdx: number, fieldIdx: number, top: boolean): StatusSets the subtotal_top flag on pivot field fieldIdx.
pivotFieldAddItempivotFieldAddItem(sheet: number, pivotIdx: number, fieldIdx: number, name: string, visible: boolean): StatusAppends a manual-filter item to pivot field fieldIdx, addressed by its label.
pivotFieldAddItemAtpivotFieldAddItemAt(sheet: number, pivotIdx: number, fieldIdx: number, cacheIndex: number, visible: boolean): StatusAppends a manual-filter item to pivot field fieldIdx, addressed by its position in the bound cache field's shared items -- the same index space as OOXML <item x="N">.
pivotFieldClearItemspivotFieldClearItems(sheet: number, pivotIdx: number, fieldIdx: number): StatusDrops every manual-filter item from pivot field fieldIdx.
pivotFieldSetItemVisiblepivotFieldSetItemVisible(sheet: number, pivotIdx: number, fieldIdx: number, itemIdx: number, visible: boolean): StatusToggles the visibility of item itemIdx on field fieldIdx.
pivotFieldAddSubtotalFnpivotFieldAddSubtotalFn(sheet: number, pivotIdx: number, fieldIdx: number, agg: PivotAggregation): StatusAppends a subtotal-fn entry to pivot field fieldIdx.
pivotFieldClearSubtotalFnspivotFieldClearSubtotalFns(sheet: number, pivotIdx: number, fieldIdx: number): StatusDrops every subtotal-fn entry from pivot field fieldIdx.
pivotFieldSetDateGrouppivotFieldSetDateGroup(sheet: number, pivotIdx: number, fieldIdx: number, granularity: PivotDateGrouping, calendar: PivotCalendar, startYear: number, endYear: number, intervalDays?: number, startSerial?: number, endSerial?: number): StatusConfigures date-grouping on pivot field fieldIdx.
pivotFieldClearDateGrouppivotFieldClearDateGroup(sheet: number, pivotIdx: number, fieldIdx: number): StatusRemoves the date-grouping config from pivot field fieldIdx.
pivotFieldSetNumberFormatpivotFieldSetNumberFormat(sheet: number, pivotIdx: number, fieldIdx: number, utf8: string): StatusSets the numFmtId of pivot field fieldIdx, as a decimal string naming a built-in id or one returned by addNumFmt.
pivotSetRowFieldOrderpivotSetRowFieldOrder(sheet: number, pivotIdx: number, indices: ReadonlyArray<number>): StatusReplaces the row-axis field order with indices.
pivotSetColFieldOrderpivotSetColFieldOrder(sheet: number, pivotIdx: number, indices: ReadonlyArray<number>): StatusReplaces the column-axis field order.
pivotDataFieldCountpivotDataFieldCount(sheet: number, pivotIdx: number): NumberResultNumber of <dataField> entries on the pivot.
pivotDataFieldAddpivotDataFieldAdd(sheet: number, pivotIdx: number, spec: PivotDataFieldSpec): AddStyleResultAppends a new data-field entry.
pivotDataFieldAtpivotDataFieldAt(sheet: number, pivotIdx: number, dataFieldIdx: number): PivotDataFieldResultReads data field dataFieldIdx.
pivotDataFieldClearpivotDataFieldClear(sheet: number, pivotIdx: number): StatusDrops every data-field entry from the pivot.
pivotDataFieldSetpivotDataFieldSet(sheet: number, pivotIdx: number, dataFieldIdx: number, spec: PivotDataFieldSpec): StatusReplaces the data-field entry at dataFieldIdx in place.
pivotFilterCountpivotFilterCount(sheet: number, pivotIdx: number): NumberResultNumber of filters on the pivot -- see PivotFilterResult.
pivotFilterAddpivotFilterAdd(sheet: number, pivotIdx: number, spec: PivotFilterSpec): StatusAppends a filter, saved with the pivot; see PivotFilterResult.
pivotFilterAtpivotFilterAt(sheet: number, pivotIdx: number, filterIdx: number): PivotFilterResultReads the filter at filterIdx; see PivotFilterResult.
pivotFilterClearpivotFilterClear(sheet: number, pivotIdx: number): StatusDrops every listed filter from the pivot.
pivotFilterRemoveAtpivotFilterRemoveAt(sheet: number, pivotIdx: number, filterIdx: number): StatusRemoves the filter at filterIdx.

ピボットキャッシュ ​

名前シグネチャ説明
pivotCacheCountpivotCacheCount(): NumberResultReturns the number of pivot caches owned by the workbook.
pivotCacheIdAtpivotCacheIdAt(idx: number): AddStyleResultReturns { status, index: cacheId } for the cache at flat index idx.
pivotCacheCreatepivotCacheCreate(requestedId: number): AddStyleResultCreates a new empty pivot cache.
pivotCacheRemovepivotCacheRemove(cacheId: number): StatusRemoves the pivot cache with id cacheId.
pivotCacheGetWorksheetSourcepivotCacheGetWorksheetSource(cacheId: number): PivotWorksheetSourceResultReads the cache's worksheet source range / defined-name metadata.
pivotCacheSetWorksheetSourcepivotCacheSetWorksheetSource(cacheId: number, source: PivotWorksheetSource): StatusSets or clears the cache's worksheet source metadata.
pivotCacheFieldCountpivotCacheFieldCount(cacheId: number): NumberResultNumber of fields on the cache identified by cacheId.
pivotCacheFieldNamepivotCacheFieldName(cacheId: number, fieldIdx: number): StringResultReads the name of the cache field at fieldIdx.
pivotCacheFieldAddpivotCacheFieldAdd(cacheId: number, name: string): AddStyleResultAppends a new field with the given UTF-8 name to the cache.
pivotCacheFieldClearpivotCacheFieldClear(cacheId: number): StatusDrops every field (and every record) from the cache.
pivotCacheFieldSharedItemCountpivotCacheFieldSharedItemCount(cacheId: number, fieldIdx: number): NumberResultNumber of shared items configured on cache field fieldIdx.
pivotCacheFieldAddSharedItemNumberpivotCacheFieldAddSharedItemNumber(cacheId: number, fieldIdx: number, value: number): StatusAppends a numeric shared item to cache field fieldIdx.
pivotCacheFieldAddSharedItemTextpivotCacheFieldAddSharedItemText(cacheId: number, fieldIdx: number, value: string): StatusAppends a text shared item to cache field fieldIdx.
pivotCacheFieldAddSharedItemBoolpivotCacheFieldAddSharedItemBool(cacheId: number, fieldIdx: number, value: boolean): StatusAppends a boolean shared item to cache field fieldIdx.
pivotCacheFieldAddSharedItemBlankpivotCacheFieldAddSharedItemBlank(cacheId: number, fieldIdx: number): StatusAppends a blank shared item to cache field fieldIdx.
pivotCacheFieldAddSharedItemErrorpivotCacheFieldAddSharedItemError(cacheId: number, fieldIdx: number, errorCode: number): StatusAppends an Excel error shared item to cache field fieldIdx.
pivotCacheFieldClearSharedItemspivotCacheFieldClearSharedItems(cacheId: number, fieldIdx: number): StatusDrops every shared item from cache field fieldIdx.
pivotCacheRecordCountpivotCacheRecordCount(cacheId: number): NumberResultReturns the number of records on the cache.
pivotCacheRecordAddpivotCacheRecordAdd(cacheId: number): AddStyleResultAppends a new empty record.
pivotCacheRecordClearpivotCacheRecordClear(cacheId: number): StatusDrops every record from the cache.
pivotCacheRecordSetNumberpivotCacheRecordSetNumber(cacheId: number, recordIdx: number, fieldIdx: number, value: number): StatusSets cell (recordIdx, fieldIdx) to a numeric value.
pivotCacheRecordSetTextpivotCacheRecordSetText(cacheId: number, recordIdx: number, fieldIdx: number, value: string): StatusSets cell (recordIdx, fieldIdx) to a UTF-8 text value.
pivotCacheRecordSetBoolpivotCacheRecordSetBool(cacheId: number, recordIdx: number, fieldIdx: number, value: boolean): StatusSets cell (recordIdx, fieldIdx) to a boolean value.
pivotCacheRecordSetBlankpivotCacheRecordSetBlank(cacheId: number, recordIdx: number, fieldIdx: number): StatusSets cell (recordIdx, fieldIdx) to Blank.
pivotCacheRecordSetErrorpivotCacheRecordSetError(cacheId: number, recordIdx: number, fieldIdx: number, errorCode: number): StatusSets cell (recordIdx, fieldIdx) to an Excel error value.
pivotCacheIdpivotCacheId(sheet: number, pivotIdx: number): AddStyleResultReturns { status, index: cacheId }: the cache the pivot draws from.

メソッドの補足 ​

cellCount() / cellAt() は、書式だけの空白セル、setBlank で書き込んだセル、スピル先のセルを含む書き込み済み座標を列挙します。未書き込みの隙間は含まず、インデックスは連続した整数で (row, col) の昇順です。列挙中はシートを変更しないでください。値や数式のある範囲の列挙とは対象が異なります。詳しくは ワークブック操作を参照してください。

setCellPhoneticRuns() は、注釈対象テキストを UTF-16 の位置で順序付けた、重ならない区間に分割して設定します。setCellPhoneticProperties() は、読み仮名とは独立してフォント、かな種別、配置を変更します。セルの値を書き換えると、区間とプロパティの両方が消去されます。

recalcParallel(threadCount) は同期的に実行され、{ status, stats } を返します。既定の @libraz/formulon 入口ではシリアルに評価し、stats.workerThreadsStarted === 0 を報告します。@libraz/formulon/threads 入口ではワーカーを起動します。0 は最大 8 ワーカーの自動検出、1 は呼び出し元スレッド、2..8 はワーカー数の上限を選択します。引数なし、小数、有限でない値、負の値、8 超は kInvalidArgument で失敗します。

setIterative(enabled, maxIterations, maxChange) で反復計算の設定を保存し、getIterative() で { status, enabled, maxIterations, maxChange } として読み戻します。maxIterations は 32767 を上限とし、getter は上限適用後の値を返します。

setIterativeProgress(callback) と setLogSink(sink) は関数または null を受け取ります。それ以外の値は kInvalidArgument(2)を返し、登録済みのコールバックは変わりません。反復計算の進捗コールバックの中から Workbook のメソッドを呼ぶと、kGraphRecalcReentrant(4005)を名指しした TypeError を送出し、何も変更しません。

setCalcMode(mode) は CalcMode を受け取ります。AutoNoTable では、recalcDataTables() を呼ぶまで recalc() はデータテーブルの結果を計算しません。fullPrecision()、calcOnSave()、refMode()、date1904() は対応する <calcPr> と <workbookPr> の設定を読み、それぞれに setter があります。<calcPr> のその他の属性は再保存しても保持されます。

activeSheet() / setActiveSheet(sheet) はアクティブタブを読み書きします。設定すると tabSelected も移り、非表示シートは拒否されます。アクティブなシートを非表示にするか削除すると、右隣の次の表示シート、なければ左側で最も近い表示シートがアクティブになります。setSheetTopLeft() と setSheetPaneTopLeft() はビューと右下ペインのスクロール原点を設定し、getSheetSelection() / setSheetSelection() は各ペインの選択範囲を扱います。setSheetSplit(sheet, xTwips, yTwips) は、固定せずに twips 単位の位置でビューを分割します。分割は固定を置き換え、固定も分割を置き換え、0, 0 で分割を解除します。ビューに存在しないペインの選択は保存時に捨てられ、選択範囲のどれにも入らないアクティブセルは最初の範囲の左上へ移ります。getSheetView() は showFormulas と showOutlineSymbols を返し、setSheetShowFormulas() と setSheetShowOutlineSymbols() で設定できます。

setRowCollapsed() と setColumnCollapsed() は、行・列の上書き設定の getter が返すアウトラインの collapsed フラグを設定します。outlineLevelRow と outlineLevelCol は、保存のたびに最も深いレベルから導出します。7 を超えるアウトラインレベルは kInvalidArgument で失敗します。

addDataTable(sheet, spec)、getDataTable(sheet, row, col)、removeDataTable(sheet, row, col) は What-If データテーブル(<f t="dataTable">)を扱います。recalc() は、入力セルに値を順に代入し、それを読むセルを再計算して入力を元に戻すことで、1 変数(列入力または行入力)と 2 変数のテーブルを埋めます。結果セルへの書き込みは kPreconditionFailed で失敗し、テーブルまたはその見出し行・列を横切る行・列の挿入と削除も同様です。結果セルは数式 getter で =TABLE(row_input,col_input) を返し、FORMULATEXT は {=TABLE(...)}、ISFORMULA は TRUE を返します。入力セルが指定されていない、入力が結果範囲の内側にある、範囲が別のテーブルと重なる場合、addDataTable は kDataTableInvalid(8005)を返します。

listShapes()、insertShape()、updateShape()、removeShape() は、シートの描画に含まれる xdr:sp の図形とテキストボックス、xdr:cxnSp のコネクタ、xdr:grpSp のグループを扱います。更新は指定したフィールドだけを書き換え、図形の残りの XML は保持します。レコードで表現できない図形は ShapePaint.Other または空のフィールドで列挙され、保存してもそのまま通過します。図形は画像と同様に行・列の編集に追従します。

listSparklineGroups()、addSparklineGroup()、updateSparklineGroup()、setSparklineGroupSparklines()、removeSparklineGroup() は、シートの x14:sparklineGroups を扱います。更新しても、rightToLeft、uid、未知の拡張といったレコード外の属性と子要素は保持されます。

listSlicers()、addSlicer(sheet, table, column, spec)、updateSlicer()、removeSlicer() はテーブルスライサーを扱います。追加するとスライサーパーツ、キャッシュ、拡張エントリ、定義名、描画フレームが作られます。スライサーを削除すると、ほかに使うスライサーがなくなった時点でそのキャッシュも削除されます。テーブルやシートの削除、スライサーのフレーム下の行・列の削除では、それに結び付いたスライサーも削除されます。ピボットキャッシュ上のスライサーはそのまま通過し、列挙されません。テーブルスライサーの選択状態はテーブルの AutoFilter が保持します。

getWorkbookProtection() / setWorkbookProtection() は <workbookProtection> を読み書きし、getProtectedRanges()、addProtectedRange()、updateProtectedRange()、removeProtectedRange() はシートの <protectedRange> を扱います。保護範囲は行・列の編集に追従します。パスワードハッシュはホストが計算した値をそのまま保存し、レコードにない属性は保持します。どちらの保護もセル編集では強制されません。

tableAt(idx) は、テーブルのスタイル名とストライプの切り替え、見出し行と集計行の数、各列の集計関数を返します。setTableColumnTotals(idx, column, totals) は 1 列の集計関数とラベルを設定し、集計行が表示されている間はそのセルも合わせて書き込みます。getTableStyle()、setTableStyle()、removeTableStyle()、getTableStyleDefaults()、setTableStyleDefaults() は、カスタムの <tableStyles> と既定のテーブル・ピボットテーブルのスタイル名を扱います。pivotGetStyleInfo() / pivotSetStyleInfo() はピボットテーブルのスタイルを読み書きします。setDefinedNameAttrs(name, localSheetId, { comment, hidden }) は名前のコメントと非表示フラグを設定します。省略したキーの属性は変わらず、名前の数式を置き換えても両方とも保持されます。

getCommentVisible() / setCommentVisible() は、従来のメモが表示状態かどうかを読み書きします。メモのボックス、表示状態、コメントパーツの作成者テーブルは再保存しても保持され、ボックスは行・列の編集でメモに追従します。getCellShowPhonetic() / setCellShowPhonetic() は、セルごとの「ふりがなを表示」フラグを読み書きします。保存ファイルでこのフラグを持つのは定数と空白セルだけで、数式セルには付きません。

SheetVisibility は Visible = 0、Hidden = 1、VeryHidden = 2 の 3 状態です。setSheetVisibility(sheet, visibility) はシートの表示状態全体を設定し、getSheetView(sheet).view.visibility で hidden と very-hidden を区別できます。従来の tabHidden はどちらの非表示状態でも 1 です。very-hidden を hidden へ降格する場合は setSheetVisibility() を使います。setSheetTabHidden(true) だけでは降格しません。

addSheet() と renameSheet() は、空の名前、UTF-16 で 31 単位を超える名前、: \ / ? * [ ] を含む名前、アポストロフィで始まるまたは終わる名前、大文字小文字を同一視すると別のシート名と重なる名前を kInvalidSheetName で拒否します。win-* プロファイル(既定を含む)では、大文字小文字を問わず History も拒否し、mac-* プロファイルは受け付けます。表示中の唯一のシートを非表示にするか削除すると kInvalidArgument で失敗します。insertRows()、deleteRows()、insertCols()、deleteCols() は、データテーブル、従来の配列ブロック、ピボットテーブルを横切る場合、またはそれらやテーブルをグリッドの端より先へ押し出す場合に kPreconditionFailed で失敗します。

ワークシートの印刷設定は setSheetPageSetup()、setSheetPageMargins()、setSheetPrintOptions()、setSheetHeaderFooter()、setSheetPrintArea()、setSheetPrintTitles()、addSheetRowBreak()、addSheetColBreak() で作成できます。モデル化していない断片には生の XML を設定するメソッドを使えますが、保存前に入力を検証します。ヘッダー / フッターはデコード済みの Excel セクション文字列を受け取り、文字どおりのアンパサンドは && と書きます。

setRangeXfIndex(sheet, firstRow, firstCol, lastRow, lastCol, xfIndex) はセル書式(XF)インデックスを両端を含む矩形へ適用し、存在しないセルを書式付きの空セルとして作成します。

行と列のスタイル、clearCellXfIndex() と setCellXfIndex(..., 0) の違い、rangeStyleBases() → remapRangeStyle() による属性だけの変更と、その取り消しに使う snapshotRangeStyle() / restoreRangeStyle() は ワークブック操作 で説明しています。getEffectiveStyle().source は、スタイルの出どころが Cell、Row、Column、Default のどれかを返します。

setFormula() は不正な数式を kParserUnexpectedToken として拒否し、失敗前のセル状態を保ちます。保存済みファイルに不正な数式文字列が含まれている場合は読み込み自体は成功しますが、再計算後のセル値は #NAME? エラーになります。evalFormula() のアドホック評価は #NAME? を値として返し、成功ステータスのままです。

getCellsInRange(sheet, range, cursor, limit) は、行・列の順序で { status, cells, nextCursor } を返します。各 RangeCell は row、col、formula、value を持ちます。最初のページでは cursor を省略し、完了して nextCursor が null になるまで値を次の呼び出しへ渡してください。limit の省略または 0 は最大 65,536 件を選びます。数式セル、空白でない値、スピルの仮想セルを含み、スタイルだけを持つ空セルは含みません。listInvalidCells() も同じカーソルと上限を使います。

寸法 API の GeometryMode.Display は 96 DPI の画面向けモデル、GeometryMode.Print はページ分割に使う DPI に依存しないモデルを選びます。表示 API は日付シリアルが暦の範囲外になる場合など、値が書式の表現可能な範囲を外れると DisplayStatus.Overflow と ######## を返します。書式コードが不正な場合は DisplayStatus.InvalidFormat として General 表示へフォールバックします。

setCellStyle(record) は名前付きセルスタイルを追加または置換します。JavaScript のレコードは { name, xfId?, builtinId?, iLevel?, hidden?, customBuiltin? } です。省略した項目は xfId: 0、カスタムスタイルを表す builtinId、レベル 0、両方のフラグ false になります。xfId は名前付きスタイルの cellStyleXfs テーブルを指し、セル単位の cellXfs テーブルは指しません。

getTheme() は 4 つのテーマ書体に加えて majorScripts と minorScripts を返し、setThemeScriptFont(major, script, typeface) はスクリプトの項目を 1 つ変更または追加します。既定値と Jpan へのフォールバック規則は 表示とレイアウト を参照してください。

条件付き書式のレコードの dataBar.direction は、0 がシートの読み方向、1 が左から右、2 が右から左です。評価結果では同じ値が CfMatch.barDirection に入ります。iconSet.floor は下限を表す CfValueObjectInput で、ルール追加時は省略でき、アイコンセット規則を読み出すと必ず含まれます。

pivotFieldAddItemAt(sheet, pivotIdx, fieldIdx, cacheIndex, visible) は、結び付いたキャッシュ項目の共有項目インデックスで手動フィルター項目を指定します。空白のピボット項目を指定できる唯一の形式です。pivotFieldAddItem() に空の名前を渡す方法は文字列比較なので空白の項目には一致しません。まだ解決できないインデックスは受け付けますが、フィルターは適用しません。

入力規則で allowBlank を省略すると既定値は false です。空セルを許可する場合は allowBlank: true を指定してください。showDropDown は引き続き OOXML の意味が反転する例外です。

AutoFilter の条件と行の表示状態は別に管理します。evaluateAutoFilter() で一致結果を確認し、applyAutoFilter() で非表示行を更新してください。clearAutoFilter() は範囲を残したまま条件を削除します。入力規則 API は値を保存せずに候補値を検証し、listInvalidCells() は既存の違反を列挙します。

probeImage() はワークブックを変更せず、PNG、JPEG、GIF、BMP の画像形式と寸法を読み取ります。listDrawingObjects() はシートのアンカー付きオブジェクトを文書順で返します。getImage() は画像バイト列をコピーし、insertImage() は既存の描画を保持します。removeDrawing() は画像またはグラフを削除し、他のオブジェクトがメディアを参照しなくなった場合にメディアも解放します。グラフ用のメソッドはグラフにまとめています。スレッドコメント API は返信と人物レコードを含み、コメントやメンションが参照している人物は削除できません。

paginate(sheet) は、status とともに printArea、horizontalBreaks、verticalBreaks、pageCount、paper、margins、printable、scale、pageOrder、printTitles、pages、horizontalBreakManual、verticalBreakManual を返します。paper はポイント単位の寸法、向き、用紙コードを認識できたかを持ちます。pages は印刷順の物理ページを並べ、areaIndex、両端を含むセル範囲、原点、拡大縮小後の寸法を含みます。印刷範囲の指定がない場合も printArea は空のままですが、ページ分割は使用範囲へフォールバックします。手動改ページの配列は対応する改ページ配列と同じ順序です。

読み取り専用のアドホック評価

evaluateFormulaText と evaluateConditionalFormula は、既存ワークブックに対する読み取り専用評価です。ローカル参照、シートをまたぐ参照、定義名、ROW() / COLUMN() のアンカーを解決し、条件付き書式では相対参照と条件判定のための値の変換を適用します。スカラー版は、配列 / スピルの結果の左上の要素だけを返します。自己参照は対象セルのキャッシュ済みの値を読み取ります。

evaluateFormulaArray(sheet, row, col, formula) は配列全体を EvalArrayResult(rows × cols の cells)として返します。範囲を指す定義名は配列として評価され、スピル先の仮想セルも列挙されます。

以下の図は、同じワークブックに対する 3 つの経路を対比したものです。

01setFormula()数式をセルに書き込む02recalc()依存グラフに参加し依存先も再計算01setFormula()数式をセルに書き込む02recalc()依存グラフに参加し依存先も再計算
ワークブックに書き込み、依存グラフに参加するのは変更する経路だけです。
01evaluateFormulaText()読み取り専用で参照・定義名を解決02スカラーの EvalResult配列は左上のみ・自己参照はキャッシュ値01evaluateFormulaText()読み取り専用で参照・定義名を解決02スカラーの EvalResult配列は左上のみ・自己参照はキャッシュ値
スカラー呼び出しは配列を左上の要素に縮約するため、=SEQUENCE(3) は 3 行ではなく 1 を返します。
01evaluateFormulaArray()同じ読み取り専用の解決規則02EvalArrayResultrows × cols の cells。スカラーは 1×101evaluateFormulaArray()同じ読み取り専用の解決規則02EvalArrayResultrows × cols の cells。スカラーは 1×1
配列呼び出しは結果全体を返し、縮約しません。スカラーは 1×1 の配列になります。

次に読むもの ​