SpreadJSは、大きなExcelファイルのインポートやエクスポート処理の時間を短縮し、SpreadJS独自のファイル形式で保存した際のファイルサイズを従来よりも小さくするための、まったく新しい方法を提供します。
また、ユーザーがExcelファイルの数百あるワークシートのうち、いくつかのワークシートのみ必要とする場合、関連するワークシートを素早く読み込む方法も提供します。
SpreadJSファイル
機能を使用するために、ドキュメントのheadセクションのSpreadJSの参照の下に、関連するjsファイルのリンクを追加する必要があります。
例:
<head>
...
<script src='.../spreadjs/gc.spread.sheets.all.x.x.x.min.js' type='text/javascript'></script>
<script src='.../spreadjs/plugins/gc.spread.sheets.io.x.x.x.min.js' type='text/javascript'></script>
</head>
SpreadJSは、sjsファイル(SpreadJS独自ファイル)の読み込みと保存、Excelファイル(xlsx)、ssjson(SpreadJS独自の旧形式ファイル)と csvファイルのインポートとエクスポートをサポートします。
例:
// sjsファイルを読み込みます。
spread.open(file, function () {
// ファイル読み込みが成功した場合のコールバック
// ここで任意の処理を実行します
}, function (e) {
console.log(e); // エラーの場合のコールバック
});
// sjsファイルを保存します。
spread.save(function (blob) {
// blobをファイルに保存します
saveAs(blob, fileName);
}, function (e) {
console.log(e);
});
// xlsxファイルをインポートします。
spread.import(file, function () {
// ファイル読み込みが成功した場合のコールバック
// ここで任意の処理を実行します
}, function (e) {
console.log(e); // エラーの場合のコールバック
}, {
// ファイル形式を指定します。ssjson, csvもFileTypeで設定します。
fileType: GC.Spread.Sheets.FileType.excel
});
// xlsxファイルをエクスポートします。
spread.export(function (blob) {
// blobをファイルに保存します
saveAs(blob, fileName);
}, function (e) {
console.log(e);
}, {
// ファイル形式を指定します。ssjson, csvもFileTypeで設定します。
fileType: GC.Spread.Sheets.FileType.excel
});
export class Workbook {
///* function GC.Spread.Sheets.@Workbook.save(successCallBack?: Function, errorCallBack?: Function, saveOptions?: GC.Spread.Sheets.SaveOptions): void
/**
* SpreadJS を SpreadJSファイル(SJSファイル形式)に保存します。
* @param {function} successCallBack - SpreadJS の保存が完了したときの成功コールバック。引数として Blob を受け取ります。
* @param {function} errorCallBack - SpreadJS の保存でエラーが発生したときのエラーコールバック。
* @param {GC.Spread.Sheets.SaveOptions} saveOptions - 保存オプション。
* @example
* spread.save(function (blob) {
* // blobをファイルに保存します
* saveAs(blob, fileName);
* }, function (e) {
* console.log(e);
* }, { includeUnusedNames: false });
*/
Workbook.prototype.save = function (this: Workbook, successCallBack?: (content: Blob) => {}, errorCallBack?, saveOptions?: SaveOptions): void;
///* function GC.Spread.Sheets.@Workbook.open(file: File, successCallback?: Function, errorCallback?: Function, openOptions?: GC.Spread.Sheets.OpenOptions)
/**
* SpreadJSファイル(SJSファイル形式)を読み込みます。
* @param {Blob} file - SpreadJSファイル(SJSファイル)。
* @param {function} successCallBack - SpreadJSファイルの読み込みが完了したときの成功コールバック。
* @param {function} errorCallBack - SpreadJSファイルの読み込みでエラーが発生したときのエラーコールバック。
* @param {GC.Spread.Sheets.OpenOptions} [openOptions] - 読み込みオプション。
* @example
* // openメソッドの使用例を示します
* // ファイルを取得します
* var file = document.getElementById("importFileName").files[0];
* // ファイルを開きます
* spread.open(file, function () {
* // ファイル読み込みが成功した場合のコールバック
* // ここで任意の処理を実行します
* }, function (e) {
* console.log(e); // エラーの場合のコールバック
* });
*/
Workbook.prototype.open = function (file: Blob, successCallback?, errorCallback?, openOptions?: OpenOptions): void;
///* function GC.Spread.Sheets.@Workbook.export(successCallBack?: Function, errorCallBack?: Function, exportOptions?: GC.Spread.Sheets.ExportOptions): void
/**
* SpreadJSを Excelファイル、SSJSONファイル、CSVファイルにエクスポートします。
* @param {function} [successCallBack] エクスポートが完了したときの成功コールバック。引数として Blob を受け取ります。
* @param {function} [errorCallBack] ファイルのエクスポートでエラーが発生したときのエラーコールバック。
* @param {GC.Spread.Sheets.ExportOptions} [exportOptions] - エクスポートのオプション。
* @example
* spread.export(function (blob) {
* // blobをファイルに保存します
* saveAs(blob, fileName);
* }, function (e) {
* console.log(e);
* }, {
* fileType: GC.Spread.Sheets.FileType.excel,
* includeBindingSource: true
* });
*/
Workbook.prototype.export = function (successCallBack?: (content: Blob) => {}, errorCallBack?, exportOptions?: ExportOptions);
///* function GC.Spread.Sheets.@Workbook.import(file: File, successCallback?: Function, errorCallback?: Function, importOptions?: GC.Spread.Sheets.ImportOptions)
/**
* Excelファイル、SSJSONファイル、CSVファイルをインポートします。
* @param {File} file - インポートするExcelファイル、SSJSONファイル、CSVファイル。
* @param {function} [successCallBack] - インポートが完了したときの成功コールバック。
* @param {function} [errorCallBack] - インポートでエラーが発生したときのエラーコールバック。
* @param {GC.Spread.Sheets.ImportOptions} [importOptions] - インポートのオプション。
* @example
* // importメソッドの使用例を示します
* // ファイルを取得します
* var file = document.getElementById("importFileName").files[0];
* // ファイルをインポートします
* spread.import(file, function () {
* // ファイル読み込みが成功した場合のコールバック
* // ここで任意の処理を実行します
* }, function (e) {
* console.log(e); // エラーの場合のコールバック
* }, {
* fileType: GC.Spread.Sheets.FileType.excel
* });
*/
Workbook.prototype.import = function (file: File, successCallback?, errorCallback?, importOptions?: ImportOptions);
}
///* typedef GC.Spread.Sheets.SaveOptions
/**
* @typedef GC.Spread.Sheets.SaveOptions
* @property {boolean} [includeBindingSource] -保存時にバインディングソースを含めるかどうか。デフォルトは false です。
* @property {boolean} [includeStyles] - 保存時にスタイルを含めるかどうか。デフォルトは true です。
* @property {boolean} [includeFormulas] - 保存時に数式を含めるかどうか。デフォルトは true です。
* @property {boolean} [saveAsView] - 保存時に表示形式の書式を適用するかどうか。デフォルトは false です。
* @property {boolean} [includeAutoMergedCells] - 保存時に自動的に結合されたセルを含めるかどうか。デフォルトは false です。
* @property {boolean} [includeCalcModelCache] - 保存時に計算のキャッシュデータを含めるかどうか。それらのデータを含むファイルを開くと、より高速になる可能性があります。デフォルトは false です。
* @property {boolean} [includeUnusedNames] - 保存時に未使用のカスタム名を含めるかどうか。デフォルトは true です。
* @property {boolean} [includeEmptyRegionCells] - 使用されるデータ範囲外の空のセル(データがないセルまたはスタイルのみのセル) を含めるかどうか。
* @property {boolean} [saveR1C1Formula] - R1C1形式の数式をファイルに保存するかどうか。SJSファイルの場合のみ有効です。デフォルトは false です。
*/
///* typedef GC.Spread.Sheets.OpenOptions
/**
* @typedef GC.Spread.Sheets.OpenOptions
* @property {boolean} [includeStyles] - 読み込み時にスタイルを含めるかどうか。デフォルトは true です。
* @property {boolean} [includeFormulas] - 読み込み時に数式を含めるかどうか。デフォルトは true です。
* @property {boolean} [fullRecalc] - データの読み込み後に計算を行うかどうか。デフォルトは false です。
* @property {boolean} [dynamicReferences] - 動的参照を使用して関数を計算するかどうか。デフォルトは true です。
* @property {boolean} [calcOnDemand] - 数式計算が要求されたときにのみ計算するかどうか。デフォルトは false です。
* @property {boolean} [incrementalCalculation] - 読み込み時にUIをブロックせずに数式を増分計算で計算するかどうか。デフォルトは false です。
* @property {boolean} [includeUnusedStyles] - 読み込み時に未使用の名前スタイルを含めるかどうか。デフォルトは true です。
* @property {GC.Spread.Sheets.OpenMode} [openMode] - normal(標準)、lazy(遅延)、incremental(増分)のオープンモード。 デフォルトはnormalです。
* @property {GC.Spread.Sheets.ProgressFunctionType} [progress] - 各オープンモードの進行状況コールバック関数。
*/
///* enum GC.Spread.Sheets.OpenMode
/**
* openメソッドの オープンモードオプション
* @enum {number}
*/
enum OpenMode {
/**
* 標準オープンモード。ファイルを開くと、UIとUIイベントは特定の時点で更新され応答します。
*/
normal = 0,
/**
* 遅延オープンモード。ファイルを開くと、アクティブなシートのみが直接読み込まれます。他のシートは、使用されるときに読み込まれます。
*/
lazy = 1,
/**
* 増分オープンモード。ファイルが開かれると、データ読み込み中にUIとUIイベントが更新され、直接応答されます。
*/
incremental = 2
}
///* typedef GC.Spread.Sheets.ProgressFunctionType
/**
* @typedef GC.Spread.Sheets.ProgressFunctionType
* @param {object} progressArgs - 進行状況の引数。
* @param {string} [progressArgs.sheetName] - 現在の読み込み中のシート名。
* @param {string} progressArgs.step - 現在の読み込み処理ステップ。
* @param {number} progressArgs.progress - 現在の読み込み状況。0 から 1 の間。
* @returns {void}
* @description 増分ロード処理の進行中に呼び出されるコールバック。
*/
export type ProgressFunctionType = (progressArgs: ProgressArgs) => void;
///* typedef GC.Spread.Sheets.ImportOptions
/**
* @typedef {GC.Spread.Sheets.FileOptions & (GC.Spread.Sheets.ImportCsvOptions | GC.Spread.Sheets.ImportSSJsonOptions | GC.Spread.Sheets.ImportXlsxOptions)} GC.Spread.Sheets.ImportOptions - ファイルインポートのオプション
*/
/**
GC.Spread.Sheets.FileOptions & (GC.Spread.Sheets.ImportCsvOptions | GC.Spread.Sheets.ImportSSJsonOptions | GC.Spread.Sheets.ImportXlsxOptions)
*/
///* typedef GC.Spread.Sheets.FileOptions
/**
* @typedef GC.Spread.Sheets.FileOptions - ファイルのオプション。
* @property {GC.Spread.Sheets.FileType} fileType - ファイルタイプ。
*/
/**
{
fileType: GC.Spread.Sheets.FileType
}
*/
///* typedef GC.Spread.Sheets.ExportOptions
/**
* @typedef {GC.Spread.Sheets.FileOptions & (GC.Spread.Sheets.ExportCsvOptions | GC.Spread.Sheets.ExportSSJsonOptions | GC.Spread.Sheets.ExportXlsxOptions)} GC.Spread.Sheets.ExportOptions - ファイルエクスポートのオプション
*/
/**
GC.Spread.Sheets.FileOptions & (GC.Spread.Sheets.ExportCsvOptions | GC.Spread.Sheets.ExportSSJsonOptions | GC.Spread.Sheets.ExportXlsxOptions)
*/
///* typedef GC.Spread.Sheets.FileOptions
/**
* @typedef GC.Spread.Sheets.FileOptions - ファイルのオプション。
* @property {GC.Spread.Sheets.FileType} fileType - ファイルタイプ。
*/
/**
{
fileType: GC.Spread.Sheets.FileType
}
*/
///* typedef GC.Spread.Sheets.ImportXlsxOptions
/**
* @typedef GC.Spread.Sheets.ImportXlsxOptions
* @property {boolean} [includeStyles] - 読み込み時にスタイルを含めるかどうか。デフォルトは true です。
* @property {boolean} [includeFormulas] - 読み込み時に数式を含めるかどうか。デフォルトは true です。
* @property {boolean} [frozenColumnsAsRowHeaders] - 読み込み時に固定列を行ヘッダーとして扱うかどうか。デフォルトは false です。
* @property {boolean} [frozenRowsAsColumnHeaders] - 読み込み時に固定行を列ヘッダーとして扱うかどうか。デフォルトは false です。
* @property {boolean} [fullRecalc] - データの読み込み後に計算を行うかどうか。デフォルトは false です。
* @property {boolean} [dynamicReferences] - 動的参照を使用して関数を計算するかどうか。デフォルトは true です。
* @property {boolean} [calcOnDemand] - 数式計算が要求されたときにのみ計算するかどうか。デフォルトは false です。
* @property {boolean} [incrementalCalculation] - 読み込み時にUIをブロックせずに数式を増分計算で計算するかどうか。デフォルトは false です。
* @property {boolean} [includeUnusedStyles] - 読み込み時に未使用の名前スタイルを含めるかどうか。デフォルトは true です。
* @property {GC.Spread.Sheets.OpenMode} [openMode] - normal(標準)、lazy(遅延)、incremental(増分)のオープンモード。 デフォルトはnormalです。
* @property {GC.Spread.Sheets.ProgressFunctionType} [progress] - 各オープンモードの進行状況コールバック関数。
*/
/**
{
includeStyles?: boolean;
frozenColumnsAsRowHeaders?: boolean;
frozenRowsAsColumnHeaders?: boolean;
includeFormulas?: boolean;
fullRecalc?: boolean;
dynamicReferences?: boolean;
calcOnDemand?: boolean;
includeUnusedStyles?: boolean;
openMode?: GC.Spread.Sheets.OpenMode;
progress?: GC.Spread.Sheets.ProgressFunctionType
}
*/
///* typedef GC.Spread.Sheets.ExportXlsxOptions
/**
* @typedef GC.Spread.Sheets.ExportXlsxOptions
* @property {boolean} [includeBindingSource] - 保存時にバインディングソースを含めるかどうか。デフォルトは false です。
* @property {boolean} [includeStyles] - 保存時にスタイルを含めるかどうか。デフォルトは true です。
* @property {boolean} [includeFormulas] - 保存時に数式を含めるかどうか。デフォルトは true です。
* @property {boolean} [saveAsView] - 保存時に表示形式の書式を無視するかどうか。デフォルトは false です。
* @property {boolean} [rowHeadersAsFrozenColumns] - 保存時に行ヘッダーを固定列として扱うかどうか。デフォルトは false です。
* @property {boolean} [columnHeadersAsFrozenRows] - 保存時に列ヘッダーを固定行として扱うかどうか。デフォルトは false です。
* @property {boolean} [includeAutoMergedCells] - 保存時に自動的に結合されたセルを含めるかどうか。デフォルトは false です。
* @property {boolean} [includeUnusedNames] - 保存時に未使用のカスタム名を含めるかどうか。デフォルトは true です。
* @property {boolean} [includeEmptyRegionCells] - 使用されるデータ範囲外の空のセル(データがないセルまたはスタイルのみのセル) を含めるかどうか。
*/
/**
{
includeBindingSource?: boolean;
includeStyles?: boolean;
includeFormulas?: boolean;
saveAsView?: boolean;
rowHeadersAsFrozenColumns?: boolean;
columnHeadersAsFrozenRows?: boolean;
includeUnusedNames?: boolean;
includeEmptyRegionCells?: boolean;
includeAutoMergedCells?: boolean;
}
*/
///* typedef GC.Spread.Sheets.ImportCsvOptions
/**
* @typedef GC.Spread.Sheets.ImportCsvOptions
* @property {string} [encoding] - csv エンコーディング タイプ。デフォルトのエンコーディング タイプは「UTF-8」です。
* @property {string} [rowDelimiter] - 行の最後に付加される行区切り文字。デフォルトの行区切り文字は '\r\n' です。
* @property {string} [columnDelimiter] - 列の最後に付加される列区切り文字。デフォルトの列区切り文字は ',' です。
*/
/**
{
rowDelimiter?: string;
columnDelimiter?: string;
encoding?: string;
}
*/
///* typedef GC.Spread.Sheets.ExportCsvOptions
/**
* @typedef GC.Spread.Sheets.ExportCsvOptions
* @property {string} [encoding] - csv エンコーディング タイプ。デフォルトのエンコーディング タイプは「UTF-8」です。
* @property {string} [rowDelimiter] - 行の最後に付加される行区切り文字。デフォルトの行区切り文字は '\r\n' です。
* @property {string} [columnDelimiter] - 列の最後に付加される列区切り文字。デフォルトの列区切り文字は ',' です。
* @property {object} [range] - 範囲の情報。
* @param {number} [range.sheetIndex] - シートインデックス。デフォルトのシートインデックスは、アクティブなシートインデックスです。
* @param {number} [range.row] - 開始行。デフォルトの行インデックスは 0 です。
* @param {number} [range.column] - 開始列。デフォルトの列インデックスは 0 です。
* @param {number} [range.rowCount] - 行数。デフォルトの行数は、アクティブなシートの行数です。
* @param {number} [range.columnCount] - 列数。デフォルトの列数は、アクティブなシートの列数です。
*/
/**
{
encoding?: string;
rowDelimiter?: string;
columnDelimiter?: string;
range?: {
sheetIndex: number;
row: number;
column: number;
rowCount: number;
columnCount: number;
}
}
*/
///* typedef GC.Spread.Sheets.ImportSSJsonOptions
/**
* @typedef GC.Spread.Sheets.ImportSSJsonOptions
* @property {boolean} [includeStyles] - 読み込み時にスタイルを含めるかどうか。デフォルトは true です。
* @property {boolean} [includeFormulas] - 読み込み時に数式を含めるかどうか。デフォルトは true です。
* @property {boolean} [frozenColumnsAsRowHeaders] - 読み込み時に固定列を行ヘッダーとして扱うかどうか。デフォルトは false です。
* @property {boolean} [frozenRowsAsColumnHeaders] - 読み込み時に固定行を列ヘッダーとして扱うかどうか。デフォルトは false です。
* @property {boolean} [fullRecalc] - データの読み込み後に再計算を行うかどうか。デフォルトは true です。
* @property {boolean | object} [incrementalLoad] - 増分読み込みを使用するか、増分読み込みのコールバックを使用するか。デフォルトは false です。
* @param {function} [incrementalLoad.loading] - 増分読み込みが進行中に呼び出されるコールバック。
* @param {function} [incrementalLoad.loaded] - 増分読み込みが完了したときのコールバック。
*/
/**
{
includeStyles?: boolean;
incrementalLoad?: any;
frozenColumnsAsRowHeaders?: boolean;
frozenRowsAsColumnHeaders?: boolean;
includeFormulas?: boolean;
fullRecalc?: boolean;
}
*/
///* typedef GC.Spread.Sheets.ExportSSJsonOptions
/**
* @typedef GC.Spread.Sheets.ExportSSJsonOptions
* @property {boolean} [includeBindingSource] - 保存時にバインディングソースを含めるかどうか。デフォルトは false です。
* @property {boolean} [includeStyles] - 保存時にスタイルを含めるかどうか。デフォルトは true です。
* @property {boolean} [includeFormulas] - 保存時に数式を含めるかどうか。デフォルトは true です。
* @property {boolean} [saveAsView] - 保存時に表示形式の書式を無視するかどうか。デフォルトは false です。
* @property {boolean} [rowHeadersAsFrozenColumns] - 保存時に行ヘッダーを固定列として扱うかどうか。デフォルトは false です。
* @property {boolean} [columnHeadersAsFrozenRows] - 保存時に列ヘッダーを固定行として扱うかどうか。デフォルトは false です。
* @property {boolean} [includeAutoMergedCells] - 保存時に自動的に結合されたセルを含めるかどうか。デフォルトは false です。
*/
/**
{
includeBindingSource?: boolean;
includeStyles?: boolean;
includeFormulas?: boolean;
saveAsView?: boolean;
rowHeadersAsFrozenColumns?: boolean;
columnHeadersAsFrozenRows?: boolean;
includeAutoMergedCells?: boolean;
}
*/