name:
src/main/js/spreadsheet/Spreadsheet.ts
-rw-r--r--
979
1import { INamedRange, NamedRange } from "./NamedRange";
2import { ISheet, Sheet } from "./Sheet";
3
4export interface ISpreadsheet {
5 /**
6 * The named ranges defined in a spreadsheet.
7 */
8 names: { [name: string]: INamedRange };
9
10 /**
11 * The sheets that are part of a spreadsheet.
12 */
13 sheets: { [name: string]: ISheet };
14}
15
16export class Spreadsheet implements ISpreadsheet {
17 names: { [name: string]: NamedRange };
18 sheets: { [name: string]: Sheet };
19
20 /**
21 * Standard constructor.
22 */
23 constructor(names: { [name: string]: NamedRange }, sheets: { [name: string]: Sheet }) {
24 this.names = names;
25 this.sheets = sheets;
26 }
27
28 /**
29 * Create an empty spreadsheet based on title and spreadsheet id.
30 */
31 static empty(): Spreadsheet {
32 return new Spreadsheet({}, {});
33 }
34
35 /**
36 * Get a Sheet by name by looking through the sheets.
37 * @param sheetName to find.
38 */
39 getSheetByName(sheetName: string) {
40 return this.sheets[sheetName];
41 }
42}