-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathindex.ts
More file actions
56 lines (50 loc) · 1.65 KB
/
index.ts
File metadata and controls
56 lines (50 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';
let spreadsheet: Spreadsheet | null = null;
// To create plus icon wrapper.
function createPlusIconWrapper(): HTMLElement {
const wrapperDiv: HTMLDivElement = document.createElement("div");
wrapperDiv.className = 'e-custom-wrapper';
const iconSpan: HTMLSpanElement = document.createElement("span");
iconSpan.className = 'e-icons e-plus e-custom-icon';
wrapperDiv.appendChild(iconSpan);
return wrapperDiv;
}
function handleCreated(): void {
if (!spreadsheet) return;
spreadsheet.updateCell({ template: 'plus-icon' } as any, 'A1');
spreadsheet.updateCell({ template: 'plus-icon' } as any, 'B1');
spreadsheet.updateCell({ template: 'plus-icon' } as any, 'C1');
spreadsheet.resize();
spreadsheet.addRibbonTabs([
{
header: { text: 'Template' },
content: [
{
text: 'Add Icon',
tooltipText: 'Initialize',
click: () => {
if (!spreadsheet) return;
const sheet: any = spreadsheet.getActiveSheet();
spreadsheet.updateCell(
{ template: 'plus-icon' } as any,
sheet.activeCell
);
spreadsheet.resize();
},
},
],
},
]);
}
function handleBeforeCellRender(args: any): void {
if (args.cell && args.cell.template === 'plus-icon') {
const wrapperDiv: HTMLElement = createPlusIconWrapper();
args.element.insertBefore(wrapperDiv, args.element.firstChild);
}
}
spreadsheet = new Spreadsheet({
created: handleCreated,
beforeCellRender: handleBeforeCellRender,
});
// Render the initialized Spreadsheet
spreadsheet.appendTo('#spreadsheet');