[]
ドキュメント プロパティには、タイトル、作成者、件名など、ワークブックに関する情報が含まれています。SpreadJS を使用すると、ワークブックでこれらのプロパティを管理できます。
ドキュメント プロパティを管理するために、SpreadJS は IWorkbook インターフェイスに IDocProps インターフェイス型の docProps プロパティを提供します。これにより、coreDocProps、appDocProps、customDocProps などのドキュメント プロパティをカスタマイズできます。
コア ドキュメント プロパティ(coreDocProps) - タイトル、作成者、キーワードなど、ドキュメントに関する重要な情報を提供する基本的なプロパティです。
アプリ ドキュメント プロパティ(appDocProps) - これらのプロパティは、マネージャー、会社の詳細など、ドキュメントの管理に特有のものです。
カスタム ドキュメント プロパティ(customDocProps) - さまざまなデータ タイプに保存できるユーザー定義のプロパティです。
次のサンプルコードは、ドキュメント プロパティを設定する方法を示しています。
// コア ドキュメント プロパティを設定します。
spread.docProps.coreDocProps = {
title: 'Sample Document',
creator: 'Admin',
keywords: 'sample, document',
subject: 'Sample Subject',
description: 'This is a sample document',
category: 'Sample Category',
contentStatus: 'Draft',
created: '11/01/24',
lastPrinted: '20/01/24',
modified: '21/01/24',
lastModifiedBy: 'John'
};
// アプリ ドキュメント プロパティを設定します。
spread.docProps.appDocProps = {
manager: 'John',
company: 'XYZCompany',
hyperlinkBase: 'https://example.com/documents/'
};
// カスタム ドキュメント プロパティを設定します。
spread.docProps.customDocPropsManager.all([
{ name: 'Kim', value: '1' },
{ name: 'Smith', value: '2' }
]);
// ドキュメント プロパティを表示します。
console.log(spread.docProps.coreDocProps);
console.log(spread.docProps.appDocProps);
console.log(spread.docProps.customDocPropsManager.all());IDocProps インターフェイスの customDocPropsManager プロパティを使用して、ドキュメントのカスタム プロパティを変更することもできます。次のサンプルコードは、カスタム プロパティ マネージャを使用して、ドキュメントに関連付けられたカスタム プロパティを追加、削除、取得、一覧表示、およびクリアする方法を示しています。
const customPropsManager = spread.docProps.customDocPropsManager;
customPropsManager.all([
{ name: 'name1', value: 'value1' },
{ name: 'name2', value: 'value2' },
]);
// 新しいカスタム プロパティを設定します。
customPropsManager.add('name3', 'value3');
customPropsManager.add('name1', 'value1_modified');
// カスタム プロパティの "name2" を削除します。
customPropsManager.remove('name2');
// カスタム プロパティの "name3" の値を取得します。
customPropsManager.get('name3'); // Output: 'value3'
// 残りのすべてのカスタム プロパティを取得します。
customPropsManager.all(); // Output: [ { name: 'name1', value: 'value1_modified' }, { name: 'name3', value: 'value3' } ]
// すべてのカスタム プロパティをクリアします。
customPropsManager.clear();ワークブックのドキュメント プロパティを管理するには、以下の手順に従います。
[ファイル] タブをクリックし、[情報] を選択します。
[情報]タブの右側に、ワークブックのプロパティが表示されます。
必要な情報を追加または変更します。
入力テキスト欄の外側をクリックすると、変更内容が保存されます。

[ファイル] タブをクリックし、[情報] を選択します。
[プロパティ]のドロップダウンから、[詳細プロパティ]をクリックします。

プロパティ ダイアログには、[概要]、[詳細]、[構成]、[ユーザー設定]などのタブがあります。それぞれのタブで、ドキュメントに関する各種の情報を設定することができます。

デフォルトでは [概要] タブが選択されます。必要に応じて、ドキュメントについての概要を追加/変更することができます。[詳細]や[構成]タブで、ドキュメントに関する一般的な情報を表示することもできます。
[ユーザー設定]タブをクリックして、追加のカスタム プロパティを定義します。
[名前]フィールドで、カスタム プロパティの名前を入力するか、リストから選択します。
[データ型]のドロップダウンから、プロパティのデータ型を選択します。
以下のデータ型が利用できます。
テキスト (Text)
日付 (Date)
数値 (Number)
はい/いいえ (Yes/No)
[値]フィールドで、選択したデータ型に応じた値を入力します。
選択したデータ型と異なる値を入力した場合は、テキスト型の値として保存されます。
[追加] をクリックします。
カスタム プロパティを追加した後、プロパティのリストに表示されます。

さらに、SpreadJS には、ドキュメント コンテンツをプロパティ値にリンクするコンテンツへのリンク設定が用意されているため、コンテンツ値が変更されると、ドキュメント プロパティが自動的に更新され、新しい値が反映されます。この設定がどのように機能するかを示す例を以下に示します。
使用例: いくつかの表とチャートを含む売上データシートを含むワークブックがあるとします。
Sheet1 のセル B10 の合計売上値が変更されるたびに自動的に更新される「Total Sales」というドキュメント プロパティを作成します。
この場合、まず Sheet1!$B$10 のようなセルのカスタム名を作成します。
カスタム名は、[構成] タブと [名前付き範囲] セクションにも表示されます。
次に、[ユーザー設定] タブに移動し、[名前] フィールドに「Total Sales」と入力して、[コンテンツへのリンク] チェックボックスをオンにします。
[値]フィールドには、作成したカスタム名が表示されます。
[追加] をクリックすると、プロパティがリンクされたアイコンとともにプロパティ リストに表示され、セルと同じ値 (つまり、Sheet1!$B$10) が含まれます。
セル B10 の値が変わるたびに、「Total Sales」ドキュメント プロパティが自動的に更新され、新しい値が反映されます。
ただし、コンテンツへのリンクが無効な場合は、プロパティ名の前にリンクされていないアイコンが表示され、削除のみが可能になります。
[OK] をクリックして、プロパティをワークブックに保存します。
メモ:
SpreadJS を使用して Excel ファイルをインポート/エクスポートする場合、docProps プロパティは常に更新されます。
インポートされたドキュメントに作成時刻がある場合は、ドキュメントの既存の作成時刻が使用されます。それ以外の場合は、作成時刻はありません。
新しいデザイナを開くと、作成時刻はデフォルトで現在の時刻に設定されます。新しいワークブックを追加するためにクリックすると、最新の時刻に更新されます。
インポート時に、SpreadJS はドキュメントの変更時刻を使用しますが、エクスポート時に、ドキュメントの変更時刻はエクスポートした時刻に更新されます。
ユーザーが [印刷] オプションをクリックすると、最後に印刷した時刻が現在の時刻に変更されます。