@lab1095/n8n-nodes-sharepoint-excel 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +19 -0
- package/README.md +136 -0
- package/dist/credentials/MicrosoftGraphOAuth2Api.credentials.d.ts +9 -0
- package/dist/credentials/MicrosoftGraphOAuth2Api.credentials.js +52 -0
- package/dist/credentials/MicrosoftGraphOAuth2Api.credentials.js.map +1 -0
- package/dist/credentials/icons/Microsoft.svg +1 -0
- package/dist/nodes/SharePointExcel/SharePointExcel.node.d.ts +15 -0
- package/dist/nodes/SharePointExcel/SharePointExcel.node.js +77 -0
- package/dist/nodes/SharePointExcel/SharePointExcel.node.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/router.d.ts +4 -0
- package/dist/nodes/SharePointExcel/actions/router.js +114 -0
- package/dist/nodes/SharePointExcel/actions/router.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/sheet/appendRows.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/sheet/appendRows.js +65 -0
- package/dist/nodes/SharePointExcel/actions/sheet/appendRows.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/sheet/clearSheet.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/sheet/clearSheet.js +27 -0
- package/dist/nodes/SharePointExcel/actions/sheet/clearSheet.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/sheet/deleteSheet.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/sheet/deleteSheet.js +29 -0
- package/dist/nodes/SharePointExcel/actions/sheet/deleteSheet.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/sheet/getSheets.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/sheet/getSheets.js +15 -0
- package/dist/nodes/SharePointExcel/actions/sheet/getSheets.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/sheet/index.d.ts +8 -0
- package/dist/nodes/SharePointExcel/actions/sheet/index.js +51 -0
- package/dist/nodes/SharePointExcel/actions/sheet/index.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/sheet/readRows.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/sheet/readRows.js +42 -0
- package/dist/nodes/SharePointExcel/actions/sheet/readRows.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/sheet/updateRange.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/sheet/updateRange.js +28 -0
- package/dist/nodes/SharePointExcel/actions/sheet/updateRange.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/sheet/upsertRows.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/sheet/upsertRows.js +92 -0
- package/dist/nodes/SharePointExcel/actions/sheet/upsertRows.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/table/getColumns.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/table/getColumns.js +28 -0
- package/dist/nodes/SharePointExcel/actions/table/getColumns.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/table/getRows.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/table/getRows.js +32 -0
- package/dist/nodes/SharePointExcel/actions/table/getRows.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/table/index.d.ts +4 -0
- package/dist/nodes/SharePointExcel/actions/table/index.js +43 -0
- package/dist/nodes/SharePointExcel/actions/table/index.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/table/lookup.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/table/lookup.js +44 -0
- package/dist/nodes/SharePointExcel/actions/table/lookup.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/workbook/addSheet.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/workbook/addSheet.js +29 -0
- package/dist/nodes/SharePointExcel/actions/workbook/addSheet.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/workbook/deleteWorkbook.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/workbook/deleteWorkbook.js +17 -0
- package/dist/nodes/SharePointExcel/actions/workbook/deleteWorkbook.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/workbook/getSheets.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/workbook/getSheets.js +15 -0
- package/dist/nodes/SharePointExcel/actions/workbook/getSheets.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/workbook/getWorkbooks.d.ts +3 -0
- package/dist/nodes/SharePointExcel/actions/workbook/getWorkbooks.js +26 -0
- package/dist/nodes/SharePointExcel/actions/workbook/getWorkbooks.js.map +1 -0
- package/dist/nodes/SharePointExcel/actions/workbook/index.d.ts +5 -0
- package/dist/nodes/SharePointExcel/actions/workbook/index.js +45 -0
- package/dist/nodes/SharePointExcel/actions/workbook/index.js.map +1 -0
- package/dist/nodes/SharePointExcel/api.d.ts +10 -0
- package/dist/nodes/SharePointExcel/api.js +138 -0
- package/dist/nodes/SharePointExcel/api.js.map +1 -0
- package/dist/nodes/SharePointExcel/descriptions.d.ts +20 -0
- package/dist/nodes/SharePointExcel/descriptions.js +523 -0
- package/dist/nodes/SharePointExcel/descriptions.js.map +1 -0
- package/dist/nodes/SharePointExcel/excel.svg +27 -0
- package/dist/nodes/SharePointExcel/listSearch.d.ts +6 -0
- package/dist/nodes/SharePointExcel/listSearch.js +184 -0
- package/dist/nodes/SharePointExcel/listSearch.js.map +1 -0
- package/dist/nodes/SharePointExcel/types.d.ts +57 -0
- package/dist/nodes/SharePointExcel/types.js +3 -0
- package/dist/nodes/SharePointExcel/types.js.map +1 -0
- package/dist/package.json +63 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.deleteSheet = exports.clearSheet = exports.upsertRows = exports.updateRange = exports.appendRows = exports.readRows = exports.getSheets = void 0;
|
|
37
|
+
const getSheets = __importStar(require("./getSheets"));
|
|
38
|
+
exports.getSheets = getSheets;
|
|
39
|
+
const readRows = __importStar(require("./readRows"));
|
|
40
|
+
exports.readRows = readRows;
|
|
41
|
+
const appendRows = __importStar(require("./appendRows"));
|
|
42
|
+
exports.appendRows = appendRows;
|
|
43
|
+
const updateRange = __importStar(require("./updateRange"));
|
|
44
|
+
exports.updateRange = updateRange;
|
|
45
|
+
const upsertRows = __importStar(require("./upsertRows"));
|
|
46
|
+
exports.upsertRows = upsertRows;
|
|
47
|
+
const clearSheet = __importStar(require("./clearSheet"));
|
|
48
|
+
exports.clearSheet = clearSheet;
|
|
49
|
+
const deleteSheet = __importStar(require("./deleteSheet"));
|
|
50
|
+
exports.deleteSheet = deleteSheet;
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/sheet/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AASxC,8BAAS;AARV,qDAAuC;AAStC,4BAAQ;AART,yDAA2C;AAS1C,gCAAU;AARX,2DAA6C;AAS5C,kCAAW;AARZ,yDAA2C;AAS1C,gCAAU;AARX,yDAA2C;AAS1C,gCAAU;AARX,2DAA6C;AAS5C,kCAAW"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, _items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const api_1 = require("../../api");
|
|
5
|
+
async function execute(_items, context) {
|
|
6
|
+
const returnData = [];
|
|
7
|
+
const sheetNameParam = this.getNodeParameter('sheetName', 0);
|
|
8
|
+
const sheetName = typeof sheetNameParam === 'object' ? sheetNameParam.value : sheetNameParam;
|
|
9
|
+
const options = this.getNodeParameter('options', 0);
|
|
10
|
+
const headerRow = options.headerRow || 1;
|
|
11
|
+
const startRow = options.startRow || 2;
|
|
12
|
+
const maxRows = options.maxRows || 0;
|
|
13
|
+
const workbook = await api_1.loadWorkbook.call(this, context.basePath);
|
|
14
|
+
const worksheet = (0, api_1.getWorksheet)(workbook, sheetName, this);
|
|
15
|
+
const headers = [];
|
|
16
|
+
const headerRowData = worksheet.getRow(headerRow);
|
|
17
|
+
headerRowData.eachCell({ includeEmpty: false }, (cell, colNumber) => {
|
|
18
|
+
headers[colNumber] = String(cell.value || `Column${colNumber}`);
|
|
19
|
+
});
|
|
20
|
+
let rowCount = 0;
|
|
21
|
+
for (let rowNum = startRow; rowNum <= worksheet.rowCount; rowNum++) {
|
|
22
|
+
if (maxRows > 0 && rowCount >= maxRows)
|
|
23
|
+
break;
|
|
24
|
+
const row = worksheet.getRow(rowNum);
|
|
25
|
+
const rowData = {};
|
|
26
|
+
let hasData = false;
|
|
27
|
+
row.eachCell({ includeEmpty: false }, (cell, colNumber) => {
|
|
28
|
+
const header = headers[colNumber] || `Column${colNumber}`;
|
|
29
|
+
rowData[header] = cell.value;
|
|
30
|
+
hasData = true;
|
|
31
|
+
});
|
|
32
|
+
if (hasData) {
|
|
33
|
+
returnData.push({ json: rowData });
|
|
34
|
+
rowCount++;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (returnData.length === 0) {
|
|
38
|
+
returnData.push({ json: { message: 'No data found in sheet' } });
|
|
39
|
+
}
|
|
40
|
+
return returnData;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=readRows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readRows.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/sheet/readRows.ts"],"names":[],"mappings":";;AAIA,0BAqDC;AAxDD,mCAAuD;AAGhD,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAEzB,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAEpC,CAAC;IACxB,MAAM,SAAS,GACd,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAoB,CAAC;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,IAAA,kBAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAG1D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACnE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAGH,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;QACpE,IAAI,OAAO,GAAG,CAAC,IAAI,QAAQ,IAAI,OAAO;YAAE,MAAM;QAE9C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,GAAG,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,SAAS,EAAE,CAAC;YAC1D,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAkC,CAAC;YAC1D,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACnC,QAAQ,EAAE,CAAC;QACZ,CAAC;IACF,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, _items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const api_1 = require("../../api");
|
|
5
|
+
async function execute(_items, context) {
|
|
6
|
+
const sheetNameParam = this.getNodeParameter('sheetName', 0);
|
|
7
|
+
const sheetName = typeof sheetNameParam === 'object' ? sheetNameParam.value : sheetNameParam;
|
|
8
|
+
const cellRef = this.getNodeParameter('cellRef', 0);
|
|
9
|
+
const cellValue = this.getNodeParameter('cellValue', 0);
|
|
10
|
+
const workbook = await api_1.loadWorkbook.call(this, context.basePath);
|
|
11
|
+
const worksheet = (0, api_1.getWorksheet)(workbook, sheetName, this);
|
|
12
|
+
const cell = worksheet.getCell(cellRef);
|
|
13
|
+
const oldValue = cell.value;
|
|
14
|
+
cell.value = cellValue;
|
|
15
|
+
await api_1.saveWorkbook.call(this, context.basePath, workbook);
|
|
16
|
+
return [
|
|
17
|
+
{
|
|
18
|
+
json: {
|
|
19
|
+
success: true,
|
|
20
|
+
cell: cellRef,
|
|
21
|
+
oldValue,
|
|
22
|
+
newValue: cellValue,
|
|
23
|
+
sheet: sheetName,
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=updateRange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateRange.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/sheet/updateRange.ts"],"names":[],"mappings":";;AAQA,0BAmCC;AA1CD,mCAAqE;AAO9D,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAEzB,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAEpC,CAAC;IACxB,MAAM,SAAS,GACd,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAW,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAW,CAAC;IAElE,MAAM,QAAQ,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,IAAA,kBAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAG1D,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IAGvB,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE1D,OAAO;QACN;YACC,IAAI,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,OAAO;gBACb,QAAQ;gBACR,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,SAAS;aACD;SAChB;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const api_1 = require("../../api");
|
|
6
|
+
async function execute(items, context) {
|
|
7
|
+
const returnData = [];
|
|
8
|
+
const sheetNameParam = this.getNodeParameter('sheetName', 0);
|
|
9
|
+
const sheetName = typeof sheetNameParam === 'object' ? sheetNameParam.value : sheetNameParam;
|
|
10
|
+
const options = this.getNodeParameter('options', 0);
|
|
11
|
+
const keyColumn = options.keyColumn;
|
|
12
|
+
const headerRow = options.headerRow || 1;
|
|
13
|
+
if (!keyColumn) {
|
|
14
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Key Column is required for upsert operation');
|
|
15
|
+
}
|
|
16
|
+
for (let i = 0; i < items.length; i++) {
|
|
17
|
+
const rowDataParam = this.getNodeParameter('rowData', i);
|
|
18
|
+
let rowsToUpsert;
|
|
19
|
+
try {
|
|
20
|
+
const parsed = JSON.parse(rowDataParam);
|
|
21
|
+
rowsToUpsert = Array.isArray(parsed) ? parsed : [parsed];
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Invalid JSON in Row Data: ${err.message}`, { itemIndex: i });
|
|
25
|
+
}
|
|
26
|
+
const workbook = await api_1.loadWorkbook.call(this, context.basePath);
|
|
27
|
+
const worksheet = (0, api_1.getWorksheet)(workbook, sheetName, this, i);
|
|
28
|
+
const headers = [];
|
|
29
|
+
const headerRowData = worksheet.getRow(headerRow);
|
|
30
|
+
headerRowData.eachCell({ includeEmpty: false }, (cell, colNumber) => {
|
|
31
|
+
headers[colNumber] = String(cell.value);
|
|
32
|
+
});
|
|
33
|
+
const headerMap = {};
|
|
34
|
+
headers.forEach((h, idx) => {
|
|
35
|
+
if (h)
|
|
36
|
+
headerMap[h] = idx;
|
|
37
|
+
});
|
|
38
|
+
const keyColIndex = headerMap[keyColumn];
|
|
39
|
+
if (keyColIndex === undefined) {
|
|
40
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Key column "${keyColumn}" not found in headers`, { itemIndex: i });
|
|
41
|
+
}
|
|
42
|
+
const existingRows = new Map();
|
|
43
|
+
for (let rowNum = headerRow + 1; rowNum <= worksheet.rowCount; rowNum++) {
|
|
44
|
+
const row = worksheet.getRow(rowNum);
|
|
45
|
+
const keyCell = row.getCell(keyColIndex);
|
|
46
|
+
if (keyCell.value !== null && keyCell.value !== undefined) {
|
|
47
|
+
existingRows.set(keyCell.value, rowNum);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
let updatedCount = 0;
|
|
51
|
+
let appendedCount = 0;
|
|
52
|
+
for (const rowData of rowsToUpsert) {
|
|
53
|
+
const keyValue = rowData[keyColumn];
|
|
54
|
+
if (keyValue === undefined || keyValue === null) {
|
|
55
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Row data missing key column "${keyColumn}" value`, { itemIndex: i });
|
|
56
|
+
}
|
|
57
|
+
const existingRowNum = existingRows.get(keyValue);
|
|
58
|
+
if (existingRowNum !== undefined) {
|
|
59
|
+
const row = worksheet.getRow(existingRowNum);
|
|
60
|
+
for (const [key, value] of Object.entries(rowData)) {
|
|
61
|
+
const colIdx = headerMap[key];
|
|
62
|
+
if (colIdx !== undefined) {
|
|
63
|
+
row.getCell(colIdx).value = value;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
updatedCount++;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const newRow = [];
|
|
70
|
+
for (const [key, value] of Object.entries(rowData)) {
|
|
71
|
+
const colIdx = headerMap[key];
|
|
72
|
+
if (colIdx !== undefined) {
|
|
73
|
+
newRow[colIdx] = value;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
worksheet.addRow(newRow);
|
|
77
|
+
appendedCount++;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
await api_1.saveWorkbook.call(this, context.basePath, workbook);
|
|
81
|
+
returnData.push({
|
|
82
|
+
json: {
|
|
83
|
+
success: true,
|
|
84
|
+
rowsUpdated: updatedCount,
|
|
85
|
+
rowsAppended: appendedCount,
|
|
86
|
+
sheet: sheetName,
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return returnData;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=upsertRows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upsertRows.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/sheet/upsertRows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, _items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const api_1 = require("../../api");
|
|
5
|
+
async function execute(_items, context) {
|
|
6
|
+
const returnData = [];
|
|
7
|
+
const tableNameParam = this.getNodeParameter('tableName', 0);
|
|
8
|
+
const tableName = typeof tableNameParam === 'object' ? tableNameParam.value : tableNameParam;
|
|
9
|
+
const endpoint = `${context.basePath}/workbook/tables/${encodeURIComponent(tableName)}/columns`;
|
|
10
|
+
const response = await api_1.graphRequest.call(this, 'GET', endpoint);
|
|
11
|
+
const columns = response.value || [];
|
|
12
|
+
for (const column of columns) {
|
|
13
|
+
returnData.push({
|
|
14
|
+
json: {
|
|
15
|
+
id: column.id,
|
|
16
|
+
name: column.name,
|
|
17
|
+
index: column.index,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
if (returnData.length === 0) {
|
|
22
|
+
returnData.push({
|
|
23
|
+
json: { message: 'No columns found in table' },
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return returnData;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=getColumns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getColumns.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/table/getColumns.ts"],"names":[],"mappings":";;AAUA,0BAoCC;AA7CD,mCAAyC;AASlC,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAEzB,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAEpC,CAAC;IACxB,MAAM,SAAS,GACd,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IAG5E,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,QAAQ,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC;IAChG,MAAM,QAAQ,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAI,QAAsC,CAAC,KAAK,IAAI,EAAE,CAAC;IAEpE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC;YACf,IAAI,EAAE;gBACL,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACJ;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAiB;SAC7D,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, _items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const api_1 = require("../../api");
|
|
5
|
+
async function execute(_items, context) {
|
|
6
|
+
const returnData = [];
|
|
7
|
+
const tableNameParam = this.getNodeParameter('tableName', 0);
|
|
8
|
+
const tableName = typeof tableNameParam === 'object' ? tableNameParam.value : tableNameParam;
|
|
9
|
+
const columnsEndpoint = `${context.basePath}/workbook/tables/${encodeURIComponent(tableName)}/columns`;
|
|
10
|
+
const columnsResponse = await api_1.graphRequest.call(this, 'GET', columnsEndpoint);
|
|
11
|
+
const columns = columnsResponse.value || [];
|
|
12
|
+
const headers = columns.map((c) => c.name);
|
|
13
|
+
const rowsEndpoint = `${context.basePath}/workbook/tables/${encodeURIComponent(tableName)}/rows`;
|
|
14
|
+
const rowsResponse = await api_1.graphRequest.call(this, 'GET', rowsEndpoint);
|
|
15
|
+
const rows = rowsResponse.value || [];
|
|
16
|
+
for (const row of rows) {
|
|
17
|
+
const rowData = {};
|
|
18
|
+
const values = row.values[0] || [];
|
|
19
|
+
headers.forEach((header, idx) => {
|
|
20
|
+
var _a;
|
|
21
|
+
rowData[header] = (_a = values[idx]) !== null && _a !== void 0 ? _a : null;
|
|
22
|
+
});
|
|
23
|
+
returnData.push({ json: rowData });
|
|
24
|
+
}
|
|
25
|
+
if (returnData.length === 0) {
|
|
26
|
+
returnData.push({
|
|
27
|
+
json: { message: 'No rows found in table' },
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return returnData;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=getRows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRows.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/table/getRows.ts"],"names":[],"mappings":";;AAcA,0BA2CC;AAxDD,mCAAyC;AAalC,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAEzB,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAEpC,CAAC;IACxB,MAAM,SAAS,GACd,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IAG5E,MAAM,eAAe,GAAG,GAAG,OAAO,CAAC,QAAQ,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC;IACvG,MAAM,eAAe,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAI,eAA6C,CAAC,KAAK,IAAI,EAAE,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAG3C,MAAM,YAAY,GAAG,GAAG,OAAO,CAAC,QAAQ,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC;IACjG,MAAM,YAAY,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAExE,MAAM,IAAI,GAAI,YAAuC,CAAC,KAAK,IAAI,EAAE,CAAC;IAElE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEnC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;;YAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,MAAA,MAAM,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAiB;SAC1D,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.lookup = exports.getRows = exports.getColumns = void 0;
|
|
37
|
+
const getColumns = __importStar(require("./getColumns"));
|
|
38
|
+
exports.getColumns = getColumns;
|
|
39
|
+
const getRows = __importStar(require("./getRows"));
|
|
40
|
+
exports.getRows = getRows;
|
|
41
|
+
const lookup = __importStar(require("./lookup"));
|
|
42
|
+
exports.lookup = lookup;
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/table/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA2C;AAIlC,gCAAU;AAHnB,mDAAqC;AAGhB,0BAAO;AAF5B,iDAAmC;AAEL,wBAAM"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, _items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const api_1 = require("../../api");
|
|
6
|
+
async function execute(_items, context) {
|
|
7
|
+
const returnData = [];
|
|
8
|
+
const tableNameParam = this.getNodeParameter('tableName', 0);
|
|
9
|
+
const tableName = typeof tableNameParam === 'object' ? tableNameParam.value : tableNameParam;
|
|
10
|
+
const lookupColumn = this.getNodeParameter('lookupColumn', 0);
|
|
11
|
+
const lookupValue = this.getNodeParameter('lookupValue', 0);
|
|
12
|
+
const columnsEndpoint = `${context.basePath}/workbook/tables/${encodeURIComponent(tableName)}/columns`;
|
|
13
|
+
const columnsResponse = await api_1.graphRequest.call(this, 'GET', columnsEndpoint);
|
|
14
|
+
const columns = columnsResponse.value || [];
|
|
15
|
+
const headers = columns.map((c) => c.name);
|
|
16
|
+
const lookupColIndex = headers.indexOf(lookupColumn);
|
|
17
|
+
if (lookupColIndex === -1) {
|
|
18
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Column "${lookupColumn}" not found in table "${tableName}"`);
|
|
19
|
+
}
|
|
20
|
+
const rowsEndpoint = `${context.basePath}/workbook/tables/${encodeURIComponent(tableName)}/rows`;
|
|
21
|
+
const rowsResponse = await api_1.graphRequest.call(this, 'GET', rowsEndpoint);
|
|
22
|
+
const rows = rowsResponse.value || [];
|
|
23
|
+
for (const row of rows) {
|
|
24
|
+
const values = row.values[0] || [];
|
|
25
|
+
const cellValue = values[lookupColIndex];
|
|
26
|
+
if (String(cellValue) === String(lookupValue)) {
|
|
27
|
+
const rowData = {};
|
|
28
|
+
headers.forEach((header, idx) => {
|
|
29
|
+
var _a;
|
|
30
|
+
rowData[header] = (_a = values[idx]) !== null && _a !== void 0 ? _a : null;
|
|
31
|
+
});
|
|
32
|
+
returnData.push({ json: rowData });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (returnData.length === 0) {
|
|
36
|
+
returnData.push({
|
|
37
|
+
json: {
|
|
38
|
+
message: `No rows found where "${lookupColumn}" equals "${lookupValue}"`,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return returnData;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/table/lookup.ts"],"names":[],"mappings":";;AAeA,0BA2DC;AAzED,+CAAkD;AAClD,mCAAyC;AAalC,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAEzB,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAEpC,CAAC;IACxB,MAAM,SAAS,GACd,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAW,CAAC;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAW,CAAC;IAGtE,MAAM,eAAe,GAAG,GAAG,OAAO,CAAC,QAAQ,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC;IACvG,MAAM,eAAe,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAI,eAA6C,CAAC,KAAK,IAAI,EAAE,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACrD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,WAAW,YAAY,yBAAyB,SAAS,GAAG,CAC5D,CAAC;IACH,CAAC;IAGD,MAAM,YAAY,GAAG,GAAG,OAAO,CAAC,QAAQ,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC;IACjG,MAAM,YAAY,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAExE,MAAM,IAAI,GAAI,YAAuC,CAAC,KAAK,IAAI,EAAE,CAAC;IAGlE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAGzC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAgB,EAAE,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;;gBAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,MAAA,MAAM,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC;YACf,IAAI,EAAE;gBACL,OAAO,EAAE,wBAAwB,YAAY,aAAa,WAAW,GAAG;aACzD;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, _items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const api_1 = require("../../api");
|
|
6
|
+
async function execute(_items, context) {
|
|
7
|
+
const newSheetName = this.getNodeParameter('newSheetName', 0);
|
|
8
|
+
if (!newSheetName || newSheetName.trim() === '') {
|
|
9
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Sheet name cannot be empty');
|
|
10
|
+
}
|
|
11
|
+
const workbook = await api_1.loadWorkbook.call(this, context.basePath);
|
|
12
|
+
const existingSheet = workbook.getWorksheet(newSheetName);
|
|
13
|
+
if (existingSheet) {
|
|
14
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Sheet "${newSheetName}" already exists in the workbook`);
|
|
15
|
+
}
|
|
16
|
+
const newSheet = workbook.addWorksheet(newSheetName);
|
|
17
|
+
await api_1.saveWorkbook.call(this, context.basePath, workbook);
|
|
18
|
+
return [
|
|
19
|
+
{
|
|
20
|
+
json: {
|
|
21
|
+
success: true,
|
|
22
|
+
sheetName: newSheetName,
|
|
23
|
+
sheetId: newSheet.id,
|
|
24
|
+
totalSheets: workbook.worksheets.length,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=addSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addSheet.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/workbook/addSheet.ts"],"names":[],"mappings":";;AAKA,0BAyCC;AA7CD,+CAAkD;AAClD,mCAAuD;AAGhD,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAW,CAAC;IAExE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,4BAA4B,CAC5B,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAGjE,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,UAAU,YAAY,kCAAkC,CACxD,CAAC;IACH,CAAC;IAGD,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAGrD,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE1D,OAAO;QACN;YACC,IAAI,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,QAAQ,CAAC,EAAE;gBACpB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;aACxB;SAChB;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, _items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const api_1 = require("../../api");
|
|
5
|
+
async function execute(_items, context) {
|
|
6
|
+
await api_1.deleteFile.call(this, context.basePath);
|
|
7
|
+
return [
|
|
8
|
+
{
|
|
9
|
+
json: {
|
|
10
|
+
success: true,
|
|
11
|
+
deleted: true,
|
|
12
|
+
fileId: context.fileId,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=deleteWorkbook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteWorkbook.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/workbook/deleteWorkbook.ts"],"names":[],"mappings":";;AAIA,0BAiBC;AApBD,mCAAuC;AAGhC,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAGzB,MAAM,gBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9C,OAAO;QACN;YACC,IAAI,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,OAAO,CAAC,MAAM;aACP;SAChB;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, _items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const api_1 = require("../../api");
|
|
5
|
+
async function execute(_items, context) {
|
|
6
|
+
const workbook = await api_1.loadWorkbook.call(this, context.basePath);
|
|
7
|
+
const sheets = workbook.worksheets.map((ws) => ({
|
|
8
|
+
name: ws.name,
|
|
9
|
+
id: ws.id,
|
|
10
|
+
rowCount: ws.rowCount,
|
|
11
|
+
columnCount: ws.columnCount,
|
|
12
|
+
}));
|
|
13
|
+
return [{ json: { sheets } }];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=getSheets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSheets.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/workbook/getSheets.ts"],"names":[],"mappings":";;AAIA,0BAeC;AAlBD,mCAAyC;AAGlC,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAEzB,MAAM,QAAQ,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAgB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,WAAW,EAAE,EAAE,CAAC,WAAW;KAC3B,CAAC,CAAC,CAAC;IAEJ,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
import type { OperationContext } from '../../types';
|
|
3
|
+
export declare function execute(this: IExecuteFunctions, _items: INodeExecutionData[], context: OperationContext): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const api_1 = require("../../api");
|
|
5
|
+
async function execute(_items, context) {
|
|
6
|
+
const returnData = [];
|
|
7
|
+
const endpoint = `/drives/${context.driveId}/root/children`;
|
|
8
|
+
const response = await api_1.graphRequest.call(this, 'GET', endpoint);
|
|
9
|
+
const items = response.value || [];
|
|
10
|
+
const excelFiles = items.filter((item) => item.file && item.name.toLowerCase().endsWith('.xlsx'));
|
|
11
|
+
for (const file of excelFiles) {
|
|
12
|
+
returnData.push({
|
|
13
|
+
json: {
|
|
14
|
+
id: file.id,
|
|
15
|
+
name: file.name,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
if (returnData.length === 0) {
|
|
20
|
+
returnData.push({
|
|
21
|
+
json: { message: 'No Excel files found in drive' },
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return returnData;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=getWorkbooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getWorkbooks.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/workbook/getWorkbooks.ts"],"names":[],"mappings":";;AAIA,0BAkCC;AArCD,mCAAyC;AAGlC,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAEzB,MAAM,UAAU,GAAyB,EAAE,CAAC;IAG5C,MAAM,QAAQ,GAAG,WAAW,OAAO,CAAC,OAAO,gBAAgB,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAI,QAAyC,CAAC,KAAK,IAAI,EAAE,CAAC;IAGrE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAChE,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC;YACf,IAAI,EAAE;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;aACA;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,EAAE,OAAO,EAAE,+BAA+B,EAAiB;SACjE,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|