WASM API
正式な TypeScript 宣言はパッケージ同梱の dist/formulon.d.ts です。このページは主要 API の要約です。
宣言ファイルを優先する
ページとインストール済みパッケージで内容が食い違う場合、対応バージョンの dist/formulon.d.ts を正としてください。
用語: ステータス付きの戻り値
WASM の失敗しうる呼び出しが返す Status オブジェクトです。ok、数値 status、人間向け message、診断用 context を持ちます。Excel のセルエラーはステータス失敗ではなく kind = Error の Value として返ります。
モジュール
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 を含む構造体を返す、ステータス付きの戻り値です。
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 は届きません。
値の種類
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) |
| AutoFilter | FilterKind、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 を表します。全メンバーは宣言ファイルを参照してください。
ワークブックのライフサイクル
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) で書き出すコンテナ形式を明示できます。
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 であることは、記載された損失が発生しなかったことを示しますが、パッケージをバイト単位で比較したことや、診断イベントが一切なかったことは示しません。
| 結果 | フィールド | 意味 |
|---|---|---|
saveWithDiagnostics | downgradedFormulaCount | キャッシュ済みリテラルとして出力された数式セルの数。XLSX では常に 0 です。 |
deferredFeatureCount | レコードへ変換されなかったシート機能の数。XLSX では常に 0 です。 | |
droppedPartCount | いずれかの書き出し側が破棄した、そのまま保持していたパートの数。 | |
droppedRelationshipCount | 対象パートの破棄に伴って破棄された関連付けの数。droppedPartCount と同じ損失を表す場合があります。 | |
renumberedPartCount | 書き出し側が割り当てたパート ID で出力されたテーブルの数。XLSB では常に 0 です。 | |
readDiagnostics | undecodedFormulaCount | デコードできなかった保存済み数式の数。XLSB のみです。 |
undecodedDefinedNameCount | デコードできずにスキップされた定義名の数。XLSB のみです。 | |
undecodedPartCount | コンテンツタイプを解決できなかった XLSB パッケージパートの数。 | |
skippedFeatureCount | 参照が利用できずスキップされた OOXML の表示オーバーレイ項目の数。 | |
unknownContentTypeCount | コンテンツタイプを認識できなかった OOXML ワークブックパートの数。 |
固定する時計
ワークブックが固定されていない場合、NOW()、TODAY()、ピボットの相対期間フィルターはホストの時計を読み取ります。これらの結果を 1 回の再計算で一致させる場合や、ホストをまたいで再現する場合は、ワークブックを 1 つの年月日・時分秒に固定してください。
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 の行と列の寸法はエンジンの既定値を使います。
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 の宣言を同じリビジョンで照合しています。デモは公開済みパッケージを使い、実行バージョンを別に表示します。
ライブラリ、診断、ログ
| 名前 | シグネチャ | 説明 |
|---|---|---|
createFormulon | createFormulon(opts?: FormulonModuleOptions): Promise<FormulonModule> | Default export from formulon.js: the Emscripten module factory. |
Module.versionString | versionString(): string | Library version string (UTF-8). |
Module.version | version(): string | Alias of versionString, matching the Node binding's name. |
Module.statusString | statusString(status: number): string | Static description of status (e.g. "kOk"). |
Module.errorDisplayName | errorDisplayName(errorCode: number): string | Excel display literal for a cell error code (e.g. "#DIV/0!"). |
Module.lastErrorMessage | lastErrorMessage(): string | Most-recent thread-local error message. |
Module.lastErrorContext | lastErrorContext(): string | Most-recent thread-local error context. |
Module.setLogMinLevel | setLogMinLevel(level: number): Status | Sets the engine's minimum structured-log severity (a LogLevel ordinal). |
Module.setLogSink | setLogSink(sink: ((record: Uint8Array) => void) | null): Status | Routes structured-log records to sink, or restores the (silent at the default threshold) stderr fallback when sink is null. |
ワークブックのライフサイクルと入出力
| 名前 | シグネチャ | 説明 |
|---|---|---|
Workbook.createDefault | createDefault(): Workbook | Workbook with a single default sheet ("Sheet1"). |
Workbook.createEmpty | createEmpty(): Workbook | Workbook with no sheets. |
Workbook.createForProfile | createForProfile(profileId: string): Workbook | Workbook 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.loadBytes | loadBytes(bytes: Uint8Array): Workbook | Loads from an in-memory workbook byte buffer, auto-detecting .xlsx vs .xlsb from the package contents (there is no filename to route on). |
isValid | isValid(): boolean | True when the wrapper holds a live native handle. |
delete | delete(): void | Releases the native handle. |
save | save(): SaveResult | Serialises the workbook to an in-memory .xlsx byte stream. |
saveAs | saveAs(format: WorkbookFormat | number): SaveResult | Serialises using an explicit container format (see WorkbookFormat). |
saveWithDiagnostics | saveWithDiagnostics(format: WorkbookFormat | number): SaveDiagnosticsResult | Serialises using an explicit format and reports loss/defer counters. |
readDiagnostics | readDiagnostics(): ReadDiagnosticsResult | Returns the loss counters captured when this handle was loaded. |
passthroughCount | passthroughCount(): NumberResult | Number of OOXML parts the reader carried through unchanged. |
passthroughAt | passthroughAt(idx: number): PassthroughEntry | Reads the path of the idx-th passthrough part; kInvalidArgument when idx is out of range. |
シートと構造
| 名前 | シグネチャ | 説明 |
|---|---|---|
addSheet | addSheet(name: string): Status | Appends a sheet. |
removeSheet | removeSheet(index: number): Status | Removes the sheet at index. |
renameSheet | renameSheet(index: number, newName: string): Status | Renames the sheet at index. |
moveSheet | moveSheet(fromIdx: number, toIdx: number): Status | Moves the sheet from fromIdx to toIdx (post-removal index). |
sheetCount | sheetCount(): NumberResult | Number of sheets. |
sheetName | sheetName(idx: number): StringResult | Display name of the sheet at idx; kInvalidArgument when idx is out of range. |
activeSheet | activeSheet(): AddStyleResult | Returns { 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. |
setActiveSheet | setActiveSheet(sheet: number): Status | Marks sheet sheet active so a save records it, creating a minimal <bookViews> when the workbook has none. |
insertRows | insertRows(sheet: number, row: number, count: number): Status | Inserts count rows at row on sheet and rewrites cross-workbook references to follow the shift. |
deleteRows | deleteRows(sheet: number, row: number, count: number): Status | Deletes count rows starting at row on sheet. |
insertCols | insertCols(sheet: number, col: number, count: number): Status | Inserts count columns at col on sheet. |
deleteCols | deleteCols(sheet: number, col: number, count: number): Status | Deletes count columns starting at col on sheet. |
セル
| 名前 | シグネチャ | 説明 |
|---|---|---|
setNumber | setNumber(sheet: number, row: number, col: number, value: number): Status | Stores a numeric literal. |
setBool | setBool(sheet: number, row: number, col: number, value: boolean): Status | Stores a boolean literal. |
setError | setError(sheet: number, row: number, col: number, errorCode: number): Status | Stores a static Excel error literal; errorCode is an ErrorCode ordinal. |
setText | setText(sheet: number, row: number, col: number, text: string): Status | Stores a text literal. |
setCellPhonetic | setCellPhonetic(sheet: number, row: number, col: number, phonetic: string): Status | Stores (or, when empty, clears) the cell's OOXML phonetic guide (<rPh>). |
setCellPhoneticRuns | setCellPhoneticRuns(sheet: number, row: number, col: number, runs: PhoneticRun[]): Status | Stores (or, when empty, clears) the cell's phonetic guide as one <rPh> block per run. |
setCellPhoneticProperties | setCellPhoneticProperties(sheet: number, row: number, col: number, properties: PhoneticProperties): Status | Stores how the cell's guide renders. |
setBlank | setBlank(sheet: number, row: number, col: number): Status | Stores a blank literal at the cell; equivalent to clearing it. |
setFormula | setFormula(sheet: number, row: number, col: number, formula: string): Status | Stores a formula. |
getValue | getValue(sheet: number, row: number, col: number): CellResult | Reads the cell's cached value, as of the most recent recalc; call recalc first after mutating cells. |
getFormula | getFormula(sheet: number, row: number, col: number): FormulaResult | The stored A1 formula (leading = included), or formula: null for a cell that holds none. |
getFormulaR1C1 | getFormulaR1C1(sheet: number, row: number, col: number): FormulaResult | The formula in R1C1 notation relative to the cell, without a leading =; formula: null when the cell holds none. |
getCellsInRange | getCellsInRange(sheet: number, range: MergeRange, cursor?: number | null, limit?: number | null): CellsInRangeResult | One page of the populated cells (formula or non-blank value, spill phantoms included) inside range, row-major. |
getLambdaText | getLambdaText(sheet: number, row: number, col: number): LambdaTextResult | Renders the lambda value stored at (sheet, row, col) as Excel formula text. |
getCellPhonetic | getCellPhonetic(sheet: number, row: number, col: number): StringResult | Returns the cell's OOXML phonetic guide (<rPh>), or an empty string. |
getCellPhoneticRuns | getCellPhoneticRuns(sheet: number, row: number, col: number): PhoneticRunsResult | Returns the cell's <rPh> blocks with their spans. |
getCellPhoneticProperties | getCellPhoneticProperties(sheet: number, row: number, col: number): PhoneticPropertiesResult | Returns how the cell's guide renders. |
cellCount | cellCount(sheet: number): NumberResult | Number 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. |
cellAt | cellAt(sheet: number, idx: number): CellEntry | Reads the idx-th counted coordinate, idx in [0, cellCount), ordered by (row, col) ascending. |
再計算
| 名前 | シグネチャ | 説明 |
|---|---|---|
recalc | recalc(): Status | Recalculates all dirty cells serially on the caller thread. |
recalcParallel | recalcParallel(threadCount: number): ParallelRecalcResult | Recalculates all dirty cells using the parallel SCC scheduler and returns per-call telemetry. |
partialRecalc | partialRecalc(viewport: RecalcViewport): PartialRecalcResult | Recalculates only cells touched by the supplied viewport. |
setIterative | setIterative(enabled: boolean, maxIterations: number, maxChange: number): Status | Sets iterative calculation. |
getIterative | getIterative(): IterativeSettingsResult | Reads back the stored iterative-calculation settings. |
setIterativeProgress | setIterativeProgress(callback: IterativeProgressCallback | null): Status | Installs (or, when passed null, clears) a JS callback invoked after each Gauss-Seidel sweep. |
calcMode | calcMode(): NumberResult<CalcMode> | Workbook-level calc mode (Excel <calcPr calcMode> policy). |
setCalcMode | setCalcMode(mode: CalcMode): Status | Sets the calc mode; only AutoNoTable changes evaluation (recalc() skips the data tables). |
fullPrecision | fullPrecision(): NumberResult | <calcPr fullPrecision> as 0/1; 0 is "set precision as displayed". |
setFullPrecision | setFullPrecision(fullPrecision: boolean): Status | |
calcOnSave | calcOnSave(): NumberResult | <calcPr calcOnSave> as 0/1 (default 1). |
setCalcOnSave | setCalcOnSave(calcOnSave: boolean): Status | |
refMode | refMode(): NumberResult<RefMode> | <calcPr refMode> as a RefMode code. |
setRefMode | setRefMode(mode: RefMode): Status | Returns kInvalidArgument for a value outside RefMode. |
date1904 | date1904(): NumberResult | The 1904 date system flag (<workbookPr date1904>) as 0/1. |
setDate1904 | setDate1904(date1904: boolean): Status | Switches the date system without converting stored serials, so every date shifts by 1462 days. |
pinnedNow | pinnedNow(): PinnedNowResult | The workbook's pinned wall-clock reading as now, or now: null when it follows the host clock (the default). |
setPinnedNow | setPinnedNow(year: number, month: number, day: number, hour: number, minute: number, second: number): Status | Pins the workbook clock to a local civil instant; see pinnedNow for the accepted ranges. |
clearPinnedNow | clearPinnedNow(): Status | Releases the pin so the clock follows the host again. |
addDataTable | addDataTable(sheet: number, spec: DataTableSpec): Status | Creates a data table over spec's result range. |
getDataTable | getDataTable(sheet: number, row: number, col: number): DataTableResult | Reads the data table whose result range contains (row, col). |
removeDataTable | removeDataTable(sheet: number, row: number, col: number): Status | Removes the data table containing (row, col) and blanks its result cells. |
recalcDataTables | recalcDataTables(): Status | Recomputes every data table now, whatever the calc mode. |
読み取り専用の評価
| 名前 | シグネチャ | 説明 |
|---|---|---|
Module.evalFormula | evalFormula(formula: string): EvalResult | Convenience: evaluates formula read-only against a fresh single-sheet workbook, anchored at Sheet1!A1. |
evaluateFormulaText | evaluateFormulaText(sheet: number, row: number, col: number, formula: string): EvalResult | Evaluates formula as if entered at (sheet, row, col) and returns a single scalar result, without mutating the workbook. |
evaluateFormulaArray | evaluateFormulaArray(sheet: number, row: number, col: number, formula: string): EvalArrayResult | Evaluates formula as if entered at (sheet, row, col) and returns the whole multi-cell result without mutating the workbook. |
evaluateConditionalFormula | evaluateConditionalFormula(sheet: number, row: number, col: number, anchorRow: number, anchorCol: number, formula: string): EvalResult | Evaluates 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). |
プロファイル、ロケール、テキスト
| 名前 | シグネチャ | 説明 |
|---|---|---|
mergeFunctionMetadata | mergeFunctionMetadata(base: FunctionMetadataResult, entry: FunctionMetadataEntry | undefined, locale: string): MergedFunctionMetadataResult | Merges a host-supplied FunctionMetadataEntry over the engine's structural functionMetadata() result. |
excelProfileId | excelProfileId(): StringResult<ExcelProfileId> | Full formula-behaviour profile id. |
setExcelProfileId | setExcelProfileId(profileId: ExcelProfileId): Status | Selects the formula-behaviour profile; kInvalidArgument for an id that is not an ExcelProfileId. |
functionMetadata | functionMetadata(name: string): FunctionMetadataResult | Returns metadata for the function name (case-insensitive). |
functionNames | functionNames(): ListResult<string> | Returns every registered function's canonical name in ascending sort order. |
localizeFunctionName | localizeFunctionName(canonicalName: string, profileId: ExcelProfileId): StringResult | Returns the localized display name for the canonical function canonicalName under profileId. |
canonicalizeFunctionName | canonicalizeFunctionName(localizedName: string, profileId: ExcelProfileId): StringResult | Inverse of localizeFunctionName: returns the canonical English name for the localized function localizedName under profileId. |
localizeFormula | localizeFormula(formula: string, profileId: ExcelProfileId): StringResult | Rewrites stored (en-invariant) formula text into profileId's Excel spelling: function names, list / array separators, decimal points, booleans and error names. |
canonicalizeFormula | canonicalizeFormula(formula: string, profileId: ExcelProfileId): StringResult | Inverse of localizeFormula: rewrites profileId-spelled formula text into the en-invariant form. |
localeFacts | localeFacts(profileId: ExcelProfileId): LocaleFactsResult | Returns the locale facts (separators, boolean names, date order, currency, error names) of profileId. |
compareText | compareText(a: string, b: string, strength: CollationStrength, profileId: ExcelProfileId): CompareTextResult | Compares two texts under profileId and returns the sign of the result in order. |
collationClasses | collationClasses(values: Value[], strength: CollationStrength, profileId: ExcelProfileId): CollationClassesResult | Classifies values into collation-ordered equivalence classes under profileId. |
定義名
| 名前 | シグネチャ | 説明 |
|---|---|---|
definedNameCount | definedNameCount(): NumberResult | Number of defined names, workbook- and sheet-scoped alike. |
definedNameAt | definedNameAt(idx: number): DefinedNameEntry | Reads the idx-th defined name with its scope; kInvalidArgument when idx is out of range. |
setDefinedName | setDefinedName(name: string, formula: string): Status | Adds, replaces, or (when formula is empty) removes a workbook- scoped defined name. |
setDefinedNameScoped | setDefinedNameScoped(name: string, formula: string, localSheetId: number): Status | Adds, replaces, or removes a defined name in workbook scope (-1) or a sheet-local scope (0-based sheet index). |
setDefinedNameAttrs | setDefinedNameAttrs(name: string, localSheetId: number, attrs: { comment?: string; hidden?: boolean }): Status | Sets the comment and / or hidden of an existing defined name in the given scope; an omitted key leaves that attribute unchanged. |
テーブル
| 名前 | シグネチャ | 説明 |
|---|---|---|
tableCount | tableCount(): NumberResult | Number of worksheet tables in the workbook. |
tableAt | tableAt(idx: number): TableEntry | Reads the idx-th table's identifying metadata; kInvalidArgument when idx is out of range. |
createTable | createTable(input: TableInput): AddStyleResult | Creates a worksheet table; index of the result is its workbook-wide table index (see tableAt). |
updateTable | updateTable(idx: number, input: TableUpdateInput): Status | Partially updates a table. |
removeTable | removeTable(idx: number): Status | Removes the table at idx. |
tableStyleCount | tableStyleCount(): NumberResult | Number of custom table / PivotTable styles (<tableStyles>). |
getTableStyle | getTableStyle(index: number): TableStyleResult | Reads the custom table style at index. |
setTableStyle | setTableStyle(style: TableStyle): Status | Adds a custom table style, or replaces the one with the same name (case-insensitive). |
removeTableStyle | removeTableStyle(name: string): Status | Removes the custom table style name. |
getTableStyleDefaults | getTableStyleDefaults(): TableStyleDefaultsResult | Reads the default table and PivotTable style names. |
setTableStyleDefaults | setTableStyleDefaults(defaults: { tableStyle?: string; pivotStyle?: string }): Status | Sets the default style names; an omitted field keeps its default and an empty string removes it. |
依存関係、スピル、外部リンク
| 名前 | シグネチャ | 説明 |
|---|---|---|
getExternalLinks | getExternalLinks(): ListResult<ExternalLinkRecord> | Returns every external-link record carried by the workbook in <externalReferences> document order. |
precedents | precedents(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. |
dependents | dependents(sheet: number, row: number, col: number, depth: number): ListResult<CellNode> | Returns the cells that read (sheet, row, col) directly (1-step dependents). |
spillInfo | spillInfo(sheet: number, row: number, col: number): SpillInfo | Returns dynamic-array spill info for (sheet, row, col). |
シートの表示と保護
| 名前 | シグネチャ | 説明 |
|---|---|---|
getCellShowPhonetic | getCellShowPhonetic(sheet: number, row: number, col: number): CellShowPhoneticResult | Reads the cell's "Show Phonetic" flag (<c ph="1">); false for an absent cell. |
setCellShowPhonetic | setCellShowPhonetic(sheet: number, row: number, col: number, show: boolean): Status | Sets the cell's "Show Phonetic" display flag. |
getSheetView | getSheetView(sheet: number): SheetViewResult | Reads the full per-sheet view (zoom, freeze, tab-hidden, and the display / orientation flags). |
setSheetZoom | setSheetZoom(sheet: number, zoomScale: number): Status | Sets the sheet zoom percentage (clamped to [10, 400]). |
setSheetFreeze | setSheetFreeze(sheet: number, freezeRows: number, freezeCols: number): Status | Sets the frozen pane in (rows, cols). |
setSheetTabHidden | setSheetTabHidden(sheet: number, hidden: boolean): Status | Sets the sheet tab's hidden flag — the two-state view of setSheetVisibility. |
setSheetVisibility | setSheetVisibility(sheet: number, visibility: SheetVisibility): Status | Sets the sheet tab's visibility to one of the three states. |
setSheetShowGridLines | setSheetShowGridLines(sheet: number, show: boolean): Status | Sets the sheet's showGridLines flag. |
setSheetShowRowColHeaders | setSheetShowRowColHeaders(sheet: number, show: boolean): Status | Sets the sheet's showRowColHeaders flag. |
setSheetShowZeros | setSheetShowZeros(sheet: number, show: boolean): Status | Sets the sheet's showZeros flag. |
setSheetShowFormulas | setSheetShowFormulas(sheet: number, show: boolean): Status | Sets the sheet's showFormulas flag. |
setSheetShowOutlineSymbols | setSheetShowOutlineSymbols(sheet: number, show: boolean): Status | Sets the sheet's showOutlineSymbols flag. |
setSheetRightToLeft | setSheetRightToLeft(sheet: number, rightToLeft: boolean): Status | Sets the sheet's rightToLeft flag. |
setSheetTabSelected | setSheetTabSelected(sheet: number, selected: boolean): Status | Sets the sheet's tabSelected flag. |
setSheetTopLeft | setSheetTopLeft(sheet: number, row: number, col: number): Status | Sets the sheet view's scroll origin (<sheetView topLeftCell>). |
setSheetPaneTopLeft | setSheetPaneTopLeft(sheet: number, row: number, col: number): Status | Sets the first visible cell of a frozen or split view's lower-right pane. |
setSheetSplit | setSheetSplit(sheet: number, xTwips: number, yTwips: number): Status | Splits the view at xTwips / yTwips (0 for none on that axis; 0, 0 removes the split). |
getSheetSelection | getSheetSelection(sheet: number): SheetSelectionResult | Reads the active pane's selection (active cell and ranges). |
setSheetSelection | setSheetSelection(sheet: number, selection: SheetSelection): Status | Replaces the active pane's selection. |
setSheetViewMode | setSheetViewMode(sheet: number, mode: string): Status | Sets the sheet's <sheetView view="..."> mode: "", "pageBreakPreview", or "pageLayout". |
getSheetProtection | getSheetProtection(sheet: number): SheetProtectionResult | Reads the sheet's <sheetProtection> flags. |
setSheetProtection | setSheetProtection(sheet: number, protection: SheetProtection): Status | Replaces the sheet's <sheetProtection> flags wholesale. |
getWorkbookProtection | getWorkbookProtection(): WorkbookProtectionResult | Reads the workbook's <workbookProtection>; every field is zero or empty when absent. |
setWorkbookProtection | setWorkbookProtection(protection: WorkbookProtection): Status | Replaces the modelled <workbookProtection> attributes. |
getProtectedRanges | getProtectedRanges(sheet: number): ListResult<ProtectedRange> | Returns the protected ranges of sheet in file order. |
addProtectedRange | addProtectedRange(sheet: number, range: ProtectedRange): Status | Appends a protected range. |
updateProtectedRange | updateProtectedRange(sheet: number, index: number, range: ProtectedRange): Status | Replaces protected range index. |
removeProtectedRange | removeProtectedRange(sheet: number, index: number): Status | Removes protected range index. |
行、列、ジオメトリ
| 名前 | シグネチャ | 説明 |
|---|---|---|
setTableColumnTotals | setTableColumnTotals(idx: number, column: number, totals: TableColumnTotalsInput): Status | Sets column column's totals-row function and label. |
getSheetColumns | getSheetColumns(sheet: number): ColumnsResult | Returns the column-layout overrides on sheet in storage order. |
setColumnWidth | setColumnWidth(sheet: number, first: number, last: number, width: number): Status | Sets / replaces the column width override on [first, last]. |
setColumnHidden | setColumnHidden(sheet: number, first: number, last: number, hidden: boolean): Status | Sets / replaces the column hidden flag on [first, last]. |
setColumnOutline | setColumnOutline(sheet: number, first: number, last: number, level: number): Status | Sets / replaces the column outline level on [first, last]. |
setColumnCollapsed | setColumnCollapsed(sheet: number, first: number, last: number, collapsed: boolean): Status | Sets / clears the column collapsed flag on [first, last]. |
setColumnStyle | setColumnStyle(sheet: number, first: number, last: number, xfIndex: number): Status | Sets / replaces the cell-style XF on [first, last]; index 0 is the default XF. |
clearColumnStyle | clearColumnStyle(sheet: number, first: number, last: number): Status | Removes the cell-style XF on [first, last], retaining other column attributes. |
getSheetRowOverrides | getSheetRowOverrides(sheet: number): RowsResult | Returns the row-layout overrides on sheet. |
setRowHeight | setRowHeight(sheet: number, row: number, height: number): Status | Sets / replaces the row height override at row. |
setRowHidden | setRowHidden(sheet: number, row: number, hidden: boolean): Status | Sets / replaces the row hidden flag at row. |
setRowOutline | setRowOutline(sheet: number, row: number, level: number): Status | Sets / replaces the row outline level at row. |
setRowCollapsed | setRowCollapsed(sheet: number, row: number, collapsed: boolean): Status | Sets / clears the row collapsed flag at row. |
setRowStyle | setRowStyle(sheet: number, first: number, last: number, xfIndex: number): Status | Sets / replaces the cell-style XF of the inclusive row span first..last; index 0 is the default XF. |
clearRowStyle | clearRowStyle(sheet: number, first: number, last: number): Status | Removes the cell-style XF of the inclusive row span first..last, retaining other row attributes. |
clearRowHeight | clearRowHeight(sheet: number, row: number): Status | Removes the height override at row, returning it to the sheet default. |
clearColumnWidth | clearColumnWidth(sheet: number, first: number, last: number): Status | Removes the width override on columns first..last, returning them to the sheet default width. |
getSheetFormatDefaults | getSheetFormatDefaults(sheet: number): SheetFormatDefaultsResult | Reads the sheet's default column / row metrics. |
setSheetFormatDefaults | setSheetFormatDefaults(sheet: number, defaults: Partial<SheetFormatDefaults>): Status | Replaces the sheet's default column / row metrics. |
getCellRectPt | getCellRectPt(sheet: number, range: MergeRange, mode: GeometryMode): CellRectResult | Rectangle covering the inclusive cell range, in points from the top-left of A1. |
getColumnWidthPt | getColumnWidthPt(sheet: number, col: number, mode: GeometryMode): NumberResult | Effective column width in points; zero when hidden. |
getRowHeightPt | getRowHeightPt(sheet: number, row: number): NumberResult | Effective row height in points; zero when hidden. |
getWidthModel | getWidthModel(sheet: number, mode: GeometryMode): WidthModelResult | The character-unit to point conversion model for the workbook's Normal font. |
columnCharsToPt | columnCharsToPt(sheet: number, mode: GeometryMode, chars: number): NumberResult | Converts a stored column width (padding included) to points, snapped to whole screen pixels. |
columnPtToChars | columnPtToChars(sheet: number, mode: GeometryMode, pt: number): NumberResult | Inverse of columnCharsToPt: the stored width Excel writes for a column of pt. |
表示テキスト
| 名前 | シグネチャ | 説明 |
|---|---|---|
getDisplayText | getDisplayText(sheet: number, row: number, col: number): DisplayTextResult | The text Excel displays for the cell, from its value and number format under the workbook's date system. |
formatValue | formatValue(value: Value, formatCode: string): DisplayTextResult | Renders value (blank, number, boolean, text or error) under the stored-form number format formatCode; empty means General. |
スタイル
| 名前 | シグネチャ | 説明 |
|---|---|---|
rangeStyleBases | rangeStyleBases(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number): RangeStyleBasesResult | Lists, 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. |
remapRangeStyle | remapRangeStyle(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number, fromXfs: number[], toXfs: number[]): Status | Second 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. |
snapshotRangeStyle | snapshotRangeStyle(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number): RangeStyleSnapshotResult | Captures 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. |
restoreRangeStyle | restoreRangeStyle(sheet: number, bytes: Uint8Array): Status | Puts a snapshotRangeStyle capture back exactly. |
getCellXfIndex | getCellXfIndex(sheet: number, row: number, col: number): CellXfIndexResult | Returns { status, xfIndex } for the cell at (sheet, row, col). |
setCellXfIndex | setCellXfIndex(sheet: number, row: number, col: number, xfIndex: number): Status | Persists xfIndex on the cell at (sheet, row, col). |
clearCellXfIndex | clearCellXfIndex(sheet: number, row: number, col: number): Status | Removes the direct style assignment from the cell at (sheet, row, col) so a blank cell inherits its row / column style again. |
setRangeXfIndex | setRangeXfIndex(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number, xfIndex: number): Status | Applies xfIndex across an inclusive rectangle, materialising blank cells so an empty ruled box renders. |
getCellXf | getCellXf(xfIndex: number): CellXfResult | Returns the resolved XF record at xfIndex. |
getFont | getFont(fontIndex: number): FontResult | Returns the font record at fontIndex, including its ColorSpec selector. |
getFill | getFill(fillIndex: number): FillResult | Returns the fill record at fillIndex, including its ColorSpec selectors. |
getBorder | getBorder(borderIndex: number): BorderResult | Returns the border record at borderIndex, including its ColorSpec selectors. |
getNumFmt | getNumFmt(numFmtId: number): NumFmtResult | Returns the format string registered for numFmtId. |
getDxf | getDxf(dxfIndex: number): DxfResult | Returns the differential-format record referenced by CF dxfId. |
addFont | addFont(record: FontRecord): AddStyleResult | Adds a font (deduplicating against existing entries) and returns the resolved index. |
setFont | setFont(fontIndex: number, record: FontRecord): Status | Overwrites the font at fontIndex in place. |
setDefaultFont | setDefaultFont(record: FontRecord): Status | Declares the workbook's default font: font 0, the record an unstyled cell resolves to. |
addFill | addFill(record: FillRecord): AddStyleResult | Adds a fill (deduplicating against existing entries). |
addBorder | addBorder(record: BorderRecord): AddStyleResult | Adds a border (deduplicating against existing entries). |
addNumFmt | addNumFmt(formatCode: string): AddNumFmtResult | Adds a number-format code. |
addXf | addXf(record: CellXf): AddStyleResult | Adds an <xf> record (deduplicating against existing entries). |
addDxf | addDxf(record: DxfRecord): AddStyleResult | Adds a <dxf> differential-format record for conditional formats. |
fontCount | fontCount(): NumberResult | Returns the number of font records currently registered. |
fillCount | fillCount(): NumberResult | Returns the number of fill records currently registered. |
borderCount | borderCount(): NumberResult | Returns the number of border records currently registered. |
xfCount | xfCount(): NumberResult | Returns the number of <xf> records currently registered. |
dxfCount | dxfCount(): NumberResult | Returns the number of <dxf> records available for CF dxfId. |
cellStyleCount | cellStyleCount(): NumberResult | Returns the number of named cell styles (<cellStyle> entries) registered. |
cellStyleXfCount | cellStyleXfCount(): NumberResult | Returns the number of <cellStyleXfs> records — the named-style xf table referenced by CellStyleResult.xfId. |
getCellStyle | getCellStyle(index: number): CellStyleResult | Returns the named cell style at index. |
getCellStyleXf | getCellStyleXf(index: number): CellXfResult | Returns the named-style xf record at index. |
addCellStyleXf | addCellStyleXf(record: CellXf): AddStyleResult | Appends (deduplicating) a named-style xf and returns its <cellStyleXfs> index, which is what setCellStyle and CellXf.xfId reference. |
setCellStyle | setCellStyle(record: CellStyleRecord): Status | Adds or replaces the <cellStyle> entry named record.name. |
removeCellStyle | removeCellStyle(name: string): Status | Removes the <cellStyle> named name; cell formats that used it are repointed at the Normal style. |
getEffectiveStyle | getEffectiveStyle(sheet: number, row: number, col: number): EffectiveStyleResult | The formatting a cell shows: the xf chosen from cell, row, column or the default, with its colours resolved. |
テーマと色
| 名前 | シグネチャ | 説明 |
|---|---|---|
getTheme | getTheme(): ThemeResult | The 12 theme colours (clrScheme order) and the theme typefaces. |
setThemeColors | setThemeColors(colors: number[]): Status | Rewrites the 12 scheme colours (clrScheme order, alpha ignored). |
setThemeFonts | setThemeFonts(fonts: ThemeFonts): Status | Rewrites the theme's major and minor typefaces. |
setThemeScriptFont | setThemeScriptFont(major: boolean, script: string, typeface: string): Status | Sets one script's typeface in the major (major true) or minor font set; other scripts are unchanged and an unknown script is appended. |
resetTheme | resetTheme(): Status | Removes the theme part so the workbook reports the default theme (source is Default). |
resolveColor | resolveColor(spec: ColorSpec, context: ColorContext): ResolvedColorResult | Resolves a colour specification to ARGB against the theme and the indexed palette; context decides what an automatic colour means. |
セルの結合
| 名前 | シグネチャ | 説明 |
|---|---|---|
addMerge | addMerge(sheet: number, range: MergeRange): Status | Adds a merge range to sheet. |
removeMerge | removeMerge(sheet: number, range: MergeRange): Status | Removes every merge that overlaps range (inclusive). |
removeMergeAt | removeMergeAt(sheet: number, index: number): Status | Removes the merge at index. |
clearMerges | clearMerges(sheet: number): Status | Drops every merge on sheet. |
getMerges | getMerges(sheet: number): ListResult<MergeRange> | Returns every merge range on sheet as a JS array. |
getMergesInRange | getMergesInRange(sheet: number, range: MergeRange): ListResult<MergeRange> | Returns the merge ranges on sheet that intersect range, in storage order. |
コメントとハイパーリンク
| 名前 | シグネチャ | 説明 |
|---|---|---|
getComment | getComment(sheet: number, row: number, col: number): CommentEntry | null | Returns the cell comment at (sheet, row, col), or null when absent. |
getCommentResult | getCommentResult(sheet: number, row: number, col: number): CommentResult | Returns a comment lookup result that distinguishes absence from an invalid sheet or handle. |
getComments | getComments(sheet: number): ListResult<SheetCommentEntry> | Returns every comment on sheet, including comments anchored on cells that carry no value. |
setComment | setComment(sheet: number, row: number, col: number, author: string, text: string): Status | Sets / replaces the cell comment. |
getCommentVisible | getCommentVisible(sheet: number, row: number, col: number): NumberResult | Whether the note at (sheet, row, col) is shown without hovering (value 0 or 1). |
setCommentVisible | setCommentVisible(sheet: number, row: number, col: number, visible: boolean): Status | Shows or hides the note at (sheet, row, col); its box geometry is kept. |
addHyperlink | addHyperlink(sheet: number, row: number, col: number, target: string, display: string, tooltip: string, location: string): Status | Appends a hyperlink to sheet. |
addHyperlinkRange | addHyperlinkRange(sheet: number, row: number, col: number, lastRow: number, lastCol: number, target: string, display: string, tooltip: string, location: string): Status | Appends a hyperlink covering the inclusive rectangle from (row, col) through (lastRow, lastCol). |
removeHyperlink | removeHyperlink(sheet: number, row: number, col: number): Status | Removes every hyperlink anchored at (row, col). |
removeHyperlinkAt | removeHyperlinkAt(sheet: number, index: number): Status | Removes the hyperlink at index. |
clearHyperlinks | clearHyperlinks(sheet: number): Status | Drops every hyperlink on sheet. |
getHyperlinks | getHyperlinks(sheet: number): ListResult<HyperlinkEntry> | Returns every hyperlink on sheet as a JS array. |
スレッド形式のコメントと人物
| 名前 | シグネチャ | 説明 |
|---|---|---|
getThreadedComments | getThreadedComments(sheet: number): ThreadedCommentsResult | Lists the sheet's threaded comments, replies included. |
addThreadedComment | addThreadedComment(sheet: number, comment: Partial<ThreadedComment> & Pick<ThreadedComment, 'id' | 'text'>): Status | Adds a threaded comment. |
editThreadedComment | editThreadedComment(sheet: number, id: string, text: string, mentions: Mention[]): Status | Replaces the text and mentions of the comment with id. |
setThreadResolved | setThreadResolved(sheet: number, threadId: string, done: boolean): Status | Sets the resolved state of the thread opened by threadId. |
removeThreadedComment | removeThreadedComment(sheet: number, id: string): Status | Removes a comment; removing an opening comment removes its thread. |
getPersons | getPersons(): PersonsResult | Lists the workbook's persons. |
addPerson | addPerson(person: Person): Status | Appends a person to the workbook's person list. |
removePerson | removePerson(id: string): Status | Fails while a threaded comment or mention still names the person. |
オートフィルター
| 名前 | シグネチャ | 説明 |
|---|---|---|
getSheetAutoFilterXml | getSheetAutoFilterXml(sheet: number): SheetAutoFilterXmlResult | Reads the complete worksheet-level <autoFilter> XML fragment. |
setSheetAutoFilterXml | setSheetAutoFilterXml(sheet: number, xml: string): Status | Replaces the worksheet-level <autoFilter> XML fragment; empty clears it. |
getAutoFilter | getAutoFilter(sheet: number): AutoFilterResult | Reads the sheet's typed AutoFilter; autoFilter is null when absent. |
setAutoFilter | setAutoFilter(sheet: number, filter: AutoFilter): Status | Replaces the sheet AutoFilter and its hidden _xlnm._FilterDatabase name. |
removeAutoFilter | removeAutoFilter(sheet: number): Status | Removes the sheet AutoFilter. |
applyAutoFilter | applyAutoFilter(sheet: number): Status | Hides every body row the criteria exclude and shows the rest, as Excel's Reapply does. |
clearAutoFilter | clearAutoFilter(sheet: number): Status | Drops every column criterion and shows all body rows. |
evaluateAutoFilter | evaluateAutoFilter(sheet: number): AutoFilterEvalResult | Evaluates the sheet AutoFilter without changing the sheet. |
getTableAutoFilter | getTableAutoFilter(table: number): AutoFilterResult | Table counterparts, addressed by the workbook-wide table index (tableAt). |
setTableAutoFilter | setTableAutoFilter(table: number, filter: AutoFilter): Status | Replaces the table's AutoFilter. |
removeTableAutoFilter | removeTableAutoFilter(table: number): Status | Removes the table's AutoFilter. |
applyTableAutoFilter | applyTableAutoFilter(table: number): Status | Hides every body row the table's criteria exclude and shows the rest. |
clearTableAutoFilter | clearTableAutoFilter(table: number): Status | Drops every column criterion and shows all body rows. |
evaluateTableAutoFilter | evaluateTableAutoFilter(table: number): AutoFilterEvalResult | Evaluates the table's AutoFilter without changing the sheet. |
データの入力規則
| 名前 | シグネチャ | 説明 |
|---|---|---|
validateValue | validateValue(sheet: number, row: number, col: number, value: Value): ValidationOutcomeResult | Checks value against the validation rule covering (row, col) without storing it. |
listInvalidCells | listInvalidCells(sheet: number, cursor?: number | null, limit?: number | null): CellsInRangeResult | Enumerates populated cells whose value fails their validation rule, in row-major order, one page at a time; paging as getCellsInRange. |
getValidations | getValidations(sheet: number): ListResult<DataValidationEntry> | Returns every data-validation rule on sheet in storage order. |
addValidation | addValidation(sheet: number, validation: DataValidationInput): Status | Appends a data-validation rule to sheet. |
removeValidationAt | removeValidationAt(sheet: number, index: number): Status | Removes the validation rule at index. |
clearValidations | clearValidations(sheet: number): Status | Drops every validation rule on sheet. |
条件付き書式
| 名前 | シグネチャ | 説明 |
|---|---|---|
evaluateCfRange | evaluateCfRange(sheet: number, firstRow: number, firstCol: number, lastRow: number, lastCol: number, todaySerial: number): CfRangeResult | Evaluates every CF block on sheet against the inclusive range [(firstRow, firstCol), (lastRow, lastCol)]. |
getConditionalFormats | getConditionalFormats(sheet: number): ListResult<ConditionalFormatEntry> | Returns every CF rule on sheet in flattened priority order. |
addConditionalFormat | addConditionalFormat(sheet: number, rule: ConditionalFormatInput): AddStyleResult | Appends a new single-rule <conditionalFormatting> block to sheet, including visual rules when their payload object is supplied. |
removeConditionalFormatAt | removeConditionalFormatAt(sheet: number, index: number): Status | Removes the CF rule at index (flattened order). |
clearConditionalFormats | clearConditionalFormats(sheet: number): Status | Drops every CF block on sheet. |
画像と描画オブジェクト
| 名前 | シグネチャ | 説明 |
|---|---|---|
probeImage | probeImage(bytes: Uint8Array): ImageInfoResult | Sniffs the format and pixel size of PNG, JPEG, GIF or BMP bytes without touching the workbook. |
listDrawingObjects | listDrawingObjects(sheet: number): ListResult<DrawingObject> | Lists the anchored objects of the sheet's drawing, in document order. |
getImage | getImage(sheet: number, objectId: number): ImageResult | Returns a copy of the media bytes of the picture objectId. |
insertImage | insertImage(sheet: number, bytes: Uint8Array, opts?: ImageInsertOptions): InsertImageResult | Inserts bytes as a picture; existing drawing content is kept. |
removeDrawing | removeDrawing(sheet: number, objectId: number): Status | Removes the picture or chart objectId and the parts only it reaches; other drawing content is kept. |
setDrawingAnchor | setDrawingAnchor(sheet: number, objectId: number, placement: ImagePlacement): Status | Moves and resizes the picture or chart objectId, keeping its id, crop, rotation and every other element. |
setDrawingZOrder | setDrawingZOrder(sheet: number, objectId: number, index: number): Status | Makes the picture or chart objectId item index of listDrawingObjects, whose order is the stacking order (0 is the back). |
snapshotDrawing | snapshotDrawing(sheet: number, objectId: number): ImageSnapshotResult | Captures the picture or chart objectId with its list position, element and dependent parts as opaque bytes for restoreDrawing. |
restoreDrawing | restoreDrawing(sheet: number, bytes: Uint8Array, opts?: RestoreImageOptions): InsertImageResult | Puts 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. |
listShapes | listShapes(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. |
insertShape | insertShape(sheet: number, spec: ShapeInput): InsertImageResult | Appends a shape on top and returns its id; a sheet without a drawing gets one and existing drawing content is kept. |
updateShape | updateShape(sheet: number, objectId: number, spec: ShapeInput): Status | Applies the fields spec names to the shape objectId; every other part of its XML is kept. |
removeShape | removeShape(sheet: number, objectId: number): Status | Removes the shape, connector or group objectId with its children. |
listSlicers | listSlicers(sheet: number): ListResult<Slicer> | Lists the table slicers the sheet hosts; slicers over a pivot cache are not listed. |
addSlicer | addSlicer(sheet: number, table: number, column: number, spec: SlicerInput): InsertImageResult | Adds a slicer over column column (0-based) of table table and returns its frame's id. |
updateSlicer | updateSlicer(sheet: number, index: number, spec: SlicerInput): Status | Applies the fields spec names to slicer index; every other part of its XML is kept. |
removeSlicer | removeSlicer(sheet: number, index: number): Status | Removes slicer index with its drawing frame, and its cache when no other slicer uses it. |
listSparklineGroups | listSparklineGroups(sheet: number): ListResult<SparklineGroup> | Lists the sheet's sparkline groups in document order with their sparklines. |
addSparklineGroup | addSparklineGroup(sheet: number, spec: SparklineGroupInput): Status | Appends a group; spec.sparklines must hold at least one sparkline. |
updateSparklineGroup | updateSparklineGroup(sheet: number, index: number, spec: SparklineGroupInput): Status | Rewrites the modelled attributes, colours and date range of group index; its sparklines and unmodelled XML are kept. |
setSparklineGroupSparklines | setSparklineGroupSparklines(sheet: number, index: number, sparklines: Sparkline[]): Status | Replaces the sparklines of group index. |
removeSparklineGroup | removeSparklineGroup(sheet: number, index: number): Status | Removes group index. |
グラフ
| 名前 | シグネチャ | 説明 |
|---|---|---|
getChart | getChart(sheet: number, objectId: number): ChartResult | Reads the typed view of the chart objectId. |
getChartData | getChartData(sheet: number, objectId: number): ChartDataResult | Resolves the chart's series against the current cell values. |
previewChartData | previewChartData(sheet: number, objectId: number, overrides: ChartPreviewOverrides): ChartDataResult | Resolves the series as if overrides were applied to the chart; the workbook is not changed. |
insertChart | insertChart(sheet: number, options: ChartInsertOptions): InsertChartResult | Creates a chart with filled caches and returns its object id. |
setChartType | setChartType(sheet: number, objectId: number, plot: number, kind: ChartInsertKind, grouping?: ChartGrouping): Status | Replaces plot group plot with kind; grouping applies to column, bar, line and area. |
setChartTitle | setChartTitle(sheet: number, objectId: number, title: string | null | { kind: ChartTitleKind; text?: string; formula?: string }): Status | Sets the chart title text, or removes the title with null. |
setChartLegend | setChartLegend(sheet: number, objectId: number, position: ChartLegendPosition, overlay: boolean, hiddenSeries?: number[]): Status | Sets the legend position (None removes it) and overlay; hiddenSeries (series c:idx values) replaces the hidden legend entries when given. |
setChartAxis | setChartAxis(sheet: number, objectId: number, axisId: number, patch: ChartAxisPatch): Status | Patches the axis axisId. |
setChartDisplay | setChartDisplay(sheet: number, objectId: number, blanksAs: ChartBlanksAs, plotVisibleOnly: boolean | null): Status | Sets how blanks are plotted and whether hidden cells are skipped; Absent and null remove the element. |
setChartSeries | setChartSeries(sheet: number, objectId: number, plot: number, seriesIdx: number, patch: ChartSeriesPatch): Status | Patches the series with c:idx seriesIdx of plot group plot. |
setChartPoint | setChartPoint(sheet: number, objectId: number, plot: number, seriesIdx: number, pointIdx: number, patch: ChartPointPatch | null): Status | Patches a data point; null or an empty patch removes its formatting. |
setChartPlot | setChartPlot(sheet: number, objectId: number, plot: number, patch: ChartPlotPatch): Status | Patches plot group plot. |
setChartFilter | setChartFilter(sheet: number, objectId: number, hiddenSeries: number[], hiddenCategories: number[]): Status | Replaces the chart filter: series by c:idx and categories by position are hidden. |
addChartSeries | addChartSeries(sheet: number, objectId: number, plot: number, patch: ChartSeriesPatch): AddChartSeriesResult | Appends a series to plot group plot; the patch must set values (y for a scatter plot). |
removeChartSeries | removeChartSeries(sheet: number, objectId: number, plot: number, seriesIdx: number): Status | Removes the series with c:idx seriesIdx from plot group plot. |
setChartSource | setChartSource(sheet: number, objectId: number, source: string, direction: ChartSeriesDirection, headerRow?: boolean, headerColumn?: boolean): Status | Rebuilds every series from source, keeping the chart kind and each series' formatting by idx, and clears the filter. |
印刷設定とページ分割
| 名前 | シグネチャ | 説明 |
|---|---|---|
paginate | paginate(sheet: number): PaginationResult | Computes print-area page breaks and physical page count for sheet. |
getSheetPageSetupXml | getSheetPageSetupXml(sheet: number): SheetPrintXmlResult | Reads the worksheet's <pageSetup> fragment; empty when absent. |
setSheetPageSetupXml | setSheetPageSetupXml(sheet: number, xml: string): Status | Replaces <pageSetup>; empty removes it and restores the defaults. |
getSheetPageMarginsXml | getSheetPageMarginsXml(sheet: number): SheetPrintXmlResult | Reads the worksheet's <pageMargins> fragment; empty when absent. |
setSheetPageMarginsXml | setSheetPageMarginsXml(sheet: number, xml: string): Status | Replaces <pageMargins>; empty removes it. |
getSheetPrintOptionsXml | getSheetPrintOptionsXml(sheet: number): SheetPrintXmlResult | Reads the worksheet's <printOptions> fragment; empty when absent. |
setSheetPrintOptionsXml | setSheetPrintOptionsXml(sheet: number, xml: string): Status | Replaces <printOptions>; empty removes it. |
getSheetHeaderFooterXml | getSheetHeaderFooterXml(sheet: number): SheetPrintXmlResult | Reads the worksheet's <headerFooter> fragment; empty when absent. |
setSheetHeaderFooterXml | setSheetHeaderFooterXml(sheet: number, xml: string): Status | Replaces <headerFooter>; empty removes it. |
getSheetSheetPrXml | getSheetSheetPrXml(sheet: number): SheetPrintXmlResult | Reads the worksheet's <sheetPr> fragment; empty when absent. |
setSheetSheetPrXml | setSheetSheetPrXml(sheet: number, xml: string): Status | Replaces <sheetPr>; empty removes it. |
setSheetFitToPage | setSheetFitToPage(sheet: number, enabled: boolean): Status | Sets or clears <sheetPr><pageSetUpPr fitToPage> without disturbing anything else <sheetPr> carries. |
getSheetPrintArea | getSheetPrintArea(sheet: number): SheetPrintAreaResult | Reads _xlnm.Print_Area as comma-separated A1 ranges. |
setSheetPrintArea | setSheetPrintArea(sheet: number, rangesA1: string): Status | Writes _xlnm.Print_Area from one or more comma-separated A1 ranges ("A1:F8", "A1:B10,D5:E20", "A:D"). |
getSheetPrintTitles | getSheetPrintTitles(sheet: number): SheetPrintTitlesResult | Reads _xlnm.Print_Titles as a row span and a column span. |
setSheetPrintTitles | setSheetPrintTitles(sheet: number, repeatRows: string, repeatCols: string): Status | Writes _xlnm.Print_Titles. |
addSheetRowBreak | addSheetRowBreak(sheet: number, row: number, manual: boolean): Status | Upserts a row break before row, spanning the whole sheet. |
addSheetColBreak | addSheetColBreak(sheet: number, col: number, manual: boolean): Status | Upserts a column break before col, spanning the whole sheet. |
removeSheetRowBreak | removeSheetRowBreak(sheet: number, row: number): Status | Removes the row break at row. |
removeSheetColBreak | removeSheetColBreak(sheet: number, col: number): Status | Removes the column break at col. |
clearSheetBreaks | clearSheetBreaks(sheet: number): Status | Removes every manual break on both axes. |
getSheetRowBreaks | getSheetRowBreaks(sheet: number): SheetPageBreaksResult | Returns the row breaks, ascending by row. |
getSheetColBreaks | getSheetColBreaks(sheet: number): SheetPageBreaksResult | Returns the column breaks, ascending by column. |
setSheetPageSetup | setSheetPageSetup(sheet: number, setup: PageSetupInput): Status | Applies a partial <pageSetup> update. |
setSheetPageMargins | setSheetPageMargins(sheet: number, margins: PageMarginsInput): Status | Applies a partial <pageMargins> update, in inches. |
setSheetPrintOptions | setSheetPrintOptions(sheet: number, options: PrintOptionsInput): Status | Applies a partial <printOptions> update. |
setSheetHeaderFooter | setSheetHeaderFooter(sheet: number, headerFooter: HeaderFooterInput): Status | Applies a partial <headerFooter> update. |
getSheetPageSetup | getSheetPageSetup(sheet: number): SheetPageSetupResult | Reads the effective page setup and which attributes state it. |
getSheetPageMargins | getSheetPageMargins(sheet: number): SheetPageMarginsResult | Reads the effective page margins, in inches. |
ピボットテーブル
| 名前 | シグネチャ | 説明 |
|---|---|---|
pivotCount | pivotCount(sheet: number): NumberResult | Returns the number of PivotTables anchored on sheet. |
pivotLayout | pivotLayout(sheet: number, pivotIndex: number): PivotLayoutResult | Evaluates and projects a PivotTable into concrete grid cells. |
pivotCreate | pivotCreate(sheet: number, name: string, cacheId: number, anchorRow: number, anchorCol: number): AddStyleResult | Creates a new empty pivot table. |
pivotRemove | pivotRemove(sheet: number, pivotIdx: number): Status | Removes the pivot table at pivotIdx. |
pivotSetName | pivotSetName(sheet: number, pivotIdx: number, name: string): Status | Renames the pivot table. |
pivotSetAnchor | pivotSetAnchor(sheet: number, pivotIdx: number, anchorRow: number, anchorCol: number, spanRows: number, spanCols: number): Status | Updates the pivot's anchor cell and span. |
pivotSetGrandTotals | pivotSetGrandTotals(sheet: number, pivotIdx: number, rowsEnabled: boolean, colsEnabled: boolean): Status | Toggles the row / column grand total bands on the pivot. |
pivotSetStyleInfo | pivotSetStyleInfo(sheet: number, pivotIdx: number, info: PivotStyleInfo): Status | Sets the pivot's table style and toggles, making the style element present. |
pivotGetLayout | pivotGetLayout(sheet: number, pivotIdx: number): PivotReportLayoutResult | Reads the pivot's compact / tabular / outline report layout. |
pivotSetLayout | pivotSetLayout(sheet: number, pivotIdx: number, layout: PivotReportLayout): Status | Sets the pivot's compact / tabular / outline report layout. |
pivotName | pivotName(sheet: number, pivotIdx: number): StringResult | Reads the pivot's name. |
pivotGetGrandTotals | pivotGetGrandTotals(sheet: number, pivotIdx: number): PivotGrandTotalsResult | Reads the row / column grand total flags pivotSetGrandTotals writes. |
pivotGetStyleInfo | pivotGetStyleInfo(sheet: number, pivotIdx: number): PivotStyleInfoResult | Reads the table style pivotSetStyleInfo writes. |
pivotRowFieldOrder | pivotRowFieldOrder(sheet: number, pivotIdx: number): PivotFieldOrderResult | Reads the row-axis field order (the list pivotSetRowFieldOrder takes). |
pivotColFieldOrder | pivotColFieldOrder(sheet: number, pivotIdx: number): PivotFieldOrderResult | Reads the column-axis field order. |
pivotFieldCount | pivotFieldCount(sheet: number, pivotIdx: number): NumberResult | Number of fields configured on the pivot. |
pivotFieldAdd | pivotFieldAdd(sheet: number, pivotIdx: number, spec: PivotFieldSpec): AddStyleResult | Places a field on the pivot. |
pivotFieldAt | pivotFieldAt(sheet: number, pivotIdx: number, fieldIdx: number): PivotFieldResult | Reads the definition of field fieldIdx. |
pivotFieldItemCount | pivotFieldItemCount(sheet: number, pivotIdx: number, fieldIdx: number): NumberResult | Number of items in the field's item list (what pivotFieldAddItem / pivotFieldAddItemAt append to). |
pivotFieldItemAt | pivotFieldItemAt(sheet: number, pivotIdx: number, fieldIdx: number, itemIdx: number): PivotItemResult | Reads item itemIdx of the field; the index pivotFieldSetItemVisible takes. |
pivotFieldClear | pivotFieldClear(sheet: number, pivotIdx: number): Status | Drops every field from the pivot, emptying the row and column orders. |
pivotFieldSetAxis | pivotFieldSetAxis(sheet: number, pivotIdx: number, fieldIdx: number, axis: PivotAxis | -1): Status | Sets the axis of pivot field fieldIdx. |
pivotFieldSetSort | pivotFieldSetSort(sheet: number, pivotIdx: number, fieldIdx: number, order: PivotSortOrder, byField: string): Status | Sets the sibling order of pivot field fieldIdx. |
pivotFieldSetSubtotalTop | pivotFieldSetSubtotalTop(sheet: number, pivotIdx: number, fieldIdx: number, top: boolean): Status | Sets the subtotal_top flag on pivot field fieldIdx. |
pivotFieldAddItem | pivotFieldAddItem(sheet: number, pivotIdx: number, fieldIdx: number, name: string, visible: boolean): Status | Appends a manual-filter item to pivot field fieldIdx, addressed by its label. |
pivotFieldAddItemAt | pivotFieldAddItemAt(sheet: number, pivotIdx: number, fieldIdx: number, cacheIndex: number, visible: boolean): Status | Appends 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">. |
pivotFieldClearItems | pivotFieldClearItems(sheet: number, pivotIdx: number, fieldIdx: number): Status | Drops every manual-filter item from pivot field fieldIdx. |
pivotFieldSetItemVisible | pivotFieldSetItemVisible(sheet: number, pivotIdx: number, fieldIdx: number, itemIdx: number, visible: boolean): Status | Toggles the visibility of item itemIdx on field fieldIdx. |
pivotFieldAddSubtotalFn | pivotFieldAddSubtotalFn(sheet: number, pivotIdx: number, fieldIdx: number, agg: PivotAggregation): Status | Appends a subtotal-fn entry to pivot field fieldIdx. |
pivotFieldClearSubtotalFns | pivotFieldClearSubtotalFns(sheet: number, pivotIdx: number, fieldIdx: number): Status | Drops every subtotal-fn entry from pivot field fieldIdx. |
pivotFieldSetDateGroup | pivotFieldSetDateGroup(sheet: number, pivotIdx: number, fieldIdx: number, granularity: PivotDateGrouping, calendar: PivotCalendar, startYear: number, endYear: number, intervalDays?: number, startSerial?: number, endSerial?: number): Status | Configures date-grouping on pivot field fieldIdx. |
pivotFieldClearDateGroup | pivotFieldClearDateGroup(sheet: number, pivotIdx: number, fieldIdx: number): Status | Removes the date-grouping config from pivot field fieldIdx. |
pivotFieldSetNumberFormat | pivotFieldSetNumberFormat(sheet: number, pivotIdx: number, fieldIdx: number, utf8: string): Status | Sets the numFmtId of pivot field fieldIdx, as a decimal string naming a built-in id or one returned by addNumFmt. |
pivotSetRowFieldOrder | pivotSetRowFieldOrder(sheet: number, pivotIdx: number, indices: ReadonlyArray<number>): Status | Replaces the row-axis field order with indices. |
pivotSetColFieldOrder | pivotSetColFieldOrder(sheet: number, pivotIdx: number, indices: ReadonlyArray<number>): Status | Replaces the column-axis field order. |
pivotDataFieldCount | pivotDataFieldCount(sheet: number, pivotIdx: number): NumberResult | Number of <dataField> entries on the pivot. |
pivotDataFieldAdd | pivotDataFieldAdd(sheet: number, pivotIdx: number, spec: PivotDataFieldSpec): AddStyleResult | Appends a new data-field entry. |
pivotDataFieldAt | pivotDataFieldAt(sheet: number, pivotIdx: number, dataFieldIdx: number): PivotDataFieldResult | Reads data field dataFieldIdx. |
pivotDataFieldClear | pivotDataFieldClear(sheet: number, pivotIdx: number): Status | Drops every data-field entry from the pivot. |
pivotDataFieldSet | pivotDataFieldSet(sheet: number, pivotIdx: number, dataFieldIdx: number, spec: PivotDataFieldSpec): Status | Replaces the data-field entry at dataFieldIdx in place. |
pivotFilterCount | pivotFilterCount(sheet: number, pivotIdx: number): NumberResult | Number of filters on the pivot -- see PivotFilterResult. |
pivotFilterAdd | pivotFilterAdd(sheet: number, pivotIdx: number, spec: PivotFilterSpec): Status | Appends a filter, saved with the pivot; see PivotFilterResult. |
pivotFilterAt | pivotFilterAt(sheet: number, pivotIdx: number, filterIdx: number): PivotFilterResult | Reads the filter at filterIdx; see PivotFilterResult. |
pivotFilterClear | pivotFilterClear(sheet: number, pivotIdx: number): Status | Drops every listed filter from the pivot. |
pivotFilterRemoveAt | pivotFilterRemoveAt(sheet: number, pivotIdx: number, filterIdx: number): Status | Removes the filter at filterIdx. |
ピボットキャッシュ
| 名前 | シグネチャ | 説明 |
|---|---|---|
pivotCacheCount | pivotCacheCount(): NumberResult | Returns the number of pivot caches owned by the workbook. |
pivotCacheIdAt | pivotCacheIdAt(idx: number): AddStyleResult | Returns { status, index: cacheId } for the cache at flat index idx. |
pivotCacheCreate | pivotCacheCreate(requestedId: number): AddStyleResult | Creates a new empty pivot cache. |
pivotCacheRemove | pivotCacheRemove(cacheId: number): Status | Removes the pivot cache with id cacheId. |
pivotCacheGetWorksheetSource | pivotCacheGetWorksheetSource(cacheId: number): PivotWorksheetSourceResult | Reads the cache's worksheet source range / defined-name metadata. |
pivotCacheSetWorksheetSource | pivotCacheSetWorksheetSource(cacheId: number, source: PivotWorksheetSource): Status | Sets or clears the cache's worksheet source metadata. |
pivotCacheFieldCount | pivotCacheFieldCount(cacheId: number): NumberResult | Number of fields on the cache identified by cacheId. |
pivotCacheFieldName | pivotCacheFieldName(cacheId: number, fieldIdx: number): StringResult | Reads the name of the cache field at fieldIdx. |
pivotCacheFieldAdd | pivotCacheFieldAdd(cacheId: number, name: string): AddStyleResult | Appends a new field with the given UTF-8 name to the cache. |
pivotCacheFieldClear | pivotCacheFieldClear(cacheId: number): Status | Drops every field (and every record) from the cache. |
pivotCacheFieldSharedItemCount | pivotCacheFieldSharedItemCount(cacheId: number, fieldIdx: number): NumberResult | Number of shared items configured on cache field fieldIdx. |
pivotCacheFieldAddSharedItemNumber | pivotCacheFieldAddSharedItemNumber(cacheId: number, fieldIdx: number, value: number): Status | Appends a numeric shared item to cache field fieldIdx. |
pivotCacheFieldAddSharedItemText | pivotCacheFieldAddSharedItemText(cacheId: number, fieldIdx: number, value: string): Status | Appends a text shared item to cache field fieldIdx. |
pivotCacheFieldAddSharedItemBool | pivotCacheFieldAddSharedItemBool(cacheId: number, fieldIdx: number, value: boolean): Status | Appends a boolean shared item to cache field fieldIdx. |
pivotCacheFieldAddSharedItemBlank | pivotCacheFieldAddSharedItemBlank(cacheId: number, fieldIdx: number): Status | Appends a blank shared item to cache field fieldIdx. |
pivotCacheFieldAddSharedItemError | pivotCacheFieldAddSharedItemError(cacheId: number, fieldIdx: number, errorCode: number): Status | Appends an Excel error shared item to cache field fieldIdx. |
pivotCacheFieldClearSharedItems | pivotCacheFieldClearSharedItems(cacheId: number, fieldIdx: number): Status | Drops every shared item from cache field fieldIdx. |
pivotCacheRecordCount | pivotCacheRecordCount(cacheId: number): NumberResult | Returns the number of records on the cache. |
pivotCacheRecordAdd | pivotCacheRecordAdd(cacheId: number): AddStyleResult | Appends a new empty record. |
pivotCacheRecordClear | pivotCacheRecordClear(cacheId: number): Status | Drops every record from the cache. |
pivotCacheRecordSetNumber | pivotCacheRecordSetNumber(cacheId: number, recordIdx: number, fieldIdx: number, value: number): Status | Sets cell (recordIdx, fieldIdx) to a numeric value. |
pivotCacheRecordSetText | pivotCacheRecordSetText(cacheId: number, recordIdx: number, fieldIdx: number, value: string): Status | Sets cell (recordIdx, fieldIdx) to a UTF-8 text value. |
pivotCacheRecordSetBool | pivotCacheRecordSetBool(cacheId: number, recordIdx: number, fieldIdx: number, value: boolean): Status | Sets cell (recordIdx, fieldIdx) to a boolean value. |
pivotCacheRecordSetBlank | pivotCacheRecordSetBlank(cacheId: number, recordIdx: number, fieldIdx: number): Status | Sets cell (recordIdx, fieldIdx) to Blank. |
pivotCacheRecordSetError | pivotCacheRecordSetError(cacheId: number, recordIdx: number, fieldIdx: number, errorCode: number): Status | Sets cell (recordIdx, fieldIdx) to an Excel error value. |
pivotCacheId | pivotCacheId(sheet: number, pivotIdx: number): AddStyleResult | Returns { 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 つの経路を対比したものです。
次に読むもの
- ワークブックの流れ ─ エンジン側のフロー
- ワークブック操作 ─ シート / セル / 構造
- 表示とレイアウト ─ 表示文字列、テーマ、スタイル、寸法、ページ分割
- フィルターと入力規則 ─ AutoFilter と候補値の検証
- コメントと画像 ─ スレッドコメント、人物、描画オブジェクト、画像
- 動的配列 ─ 上記で触れたスピルの挙動
- エラーモデル ─ 各エラーコードの意味
- ファイル形式サポート ─ XLSB が現在どこまで往復保存できるか