UNPKG

n8n-nodes-feishu-lite

Version:
96 lines 3.48 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const n8n_workflow_1 = require("n8n-workflow"); const RequestUtils_1 = __importDefault(require("../../../help/utils/RequestUtils")); const NodeUtils_1 = __importDefault(require("../../../help/utils/NodeUtils")); const SpreadsheetValuesWriteOperate = { name: '自动写入数据', value: 'spreadsheet:valuesAutoWrite', order: 70, options: [ { displayName: '电子表格 Token', name: 'spreadsheetToke', type: 'string', required: true, default: '', description: '电子表格的 token。', }, { displayName: '工作表 ID', name: 'sheetId', type: 'string', required: true, default: "", }, { displayName: '数据', name: 'values', type: 'json', required: true, default: '[]', description: '一个对象一条数据,key值是表头名称', }, { displayName: '开始行数', name: 'startLine', type: 'number', required: true, default: 1, }, { displayName: '是否显示表头', name: 'showHeader', type: 'boolean', required: true, default: true, }, ], async call(index) { const spreadsheetToken = this.getNodeParameter('spreadsheetToke', index); const sheetId = this.getNodeParameter('sheetId', index); const startLine = this.getNodeParameter('startLine', index); const showHeader = this.getNodeParameter('showHeader', index); const values = NodeUtils_1.default.getNodeJsonData(this, 'values', index); if (!Array.isArray(values) || values.length === 0) { throw new n8n_workflow_1.NodeOperationError(this.getNode(), '数据不能为空'); } function getColumnHeader(index) { let column = ''; index++; while (index > 0) { const remainder = (index - 1) % 26; column = String.fromCharCode(65 + remainder) + column; index = Math.floor((index - 1) / 26); } return column; } const headers = Object.keys(values[0]); const maxColumnHeader = getColumnHeader(headers.length); const range = `${sheetId}!A${startLine}:${maxColumnHeader}${startLine + values.length}`; let valuesWithHeader = []; if (showHeader) { valuesWithHeader = [headers, ...values.map((item) => headers.map((header) => item[header]))]; } else { valuesWithHeader = values.map((item) => Object.values(item)); } const body = { valueRange: { range, valuesWithHeader, }, }; const response = await RequestUtils_1.default.request.call(this, { method: 'PUT', url: `/open-apis/sheets/v2/spreadsheets/${spreadsheetToken}/values`, body, }); return response; }, }; exports.default = SpreadsheetValuesWriteOperate; //# sourceMappingURL=SpreadsheetValuesAutoWriteOperate.js.map