n8n-nodes-excel-ai 1.0.2 → 1.0.5
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/README.md +179 -31
- package/README.zh-TW.md +179 -31
- package/dist/nodes/ExcelAI/ExcelAI.node.d.ts +1 -1
- package/dist/nodes/ExcelAI/ExcelAI.node.js +266 -203
- package/dist/nodes/ExcelAI/ExcelAI.node.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ A powerful n8n community node for performing CRUD (Create, Read, Update, Delete)
|
|
|
19
19
|
- **Create**: Add new rows with automatic column mapping
|
|
20
20
|
- **Update**: Modify existing rows with partial updates
|
|
21
21
|
- **Delete**: Remove rows by row number
|
|
22
|
-
- **
|
|
22
|
+
- **Filter**: Filter rows with advanced conditions and multiple operators
|
|
23
23
|
|
|
24
24
|
### 🗂️ Worksheet Management
|
|
25
25
|
- **List Worksheets**: Get all sheets in a workbook
|
|
@@ -45,6 +45,25 @@ cd ~/.n8n/nodes
|
|
|
45
45
|
npm install n8n-nodes-excel-ai
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
+
#### 🔒 Security: Fix form-data Vulnerability
|
|
49
|
+
|
|
50
|
+
To resolve the `form-data` security vulnerability from `n8n-workflow`, add this to your `package.json` in the installation directory:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"overrides": {
|
|
55
|
+
"form-data": "^4.0.4"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Then reinstall:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npm install
|
|
64
|
+
npm audit
|
|
65
|
+
```
|
|
66
|
+
|
|
48
67
|
### Option 2: Docker
|
|
49
68
|
|
|
50
69
|
Add to your `docker-compose.yml`:
|
|
@@ -128,17 +147,19 @@ Row Data: {"Name": "Bob Wilson", "Email": "bob@example.com", "Status": "Active"}
|
|
|
128
147
|
}
|
|
129
148
|
```
|
|
130
149
|
|
|
131
|
-
#### 3.
|
|
150
|
+
#### 3. Filter Rows
|
|
132
151
|
|
|
133
152
|
```javascript
|
|
134
153
|
// Node Configuration
|
|
135
154
|
Resource: Row
|
|
136
|
-
Operation:
|
|
155
|
+
Operation: Filter Rows
|
|
137
156
|
File Path: /data/customers.xlsx
|
|
138
157
|
Sheet Name: Customers
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
158
|
+
Filter Conditions:
|
|
159
|
+
- Field: Status
|
|
160
|
+
- Operator: equals
|
|
161
|
+
- Value: Active
|
|
162
|
+
Condition Logic: and
|
|
142
163
|
|
|
143
164
|
// Output
|
|
144
165
|
[
|
|
@@ -181,24 +202,26 @@ Match Type: exact
|
|
|
181
202
|
}
|
|
182
203
|
```
|
|
183
204
|
|
|
184
|
-
#### Example 3:
|
|
205
|
+
#### Example 3: Filter with AI
|
|
185
206
|
|
|
186
207
|
**User:** "Find all active customers in Boston"
|
|
187
208
|
|
|
188
209
|
**AI Agent Execution:**
|
|
189
210
|
```javascript
|
|
190
211
|
{
|
|
191
|
-
"operation": "
|
|
212
|
+
"operation": "filterRows",
|
|
192
213
|
"filePath": "/data/customers.xlsx",
|
|
193
214
|
"sheetName": "Customers",
|
|
194
|
-
"
|
|
195
|
-
|
|
196
|
-
|
|
215
|
+
"filterConditions": {
|
|
216
|
+
"conditions": [
|
|
217
|
+
{ "field": "Status", "operator": "equals", "value": "Active" },
|
|
218
|
+
{ "field": "City", "operator": "equals", "value": "Boston" }
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
"conditionLogic": "and"
|
|
197
222
|
}
|
|
198
223
|
```
|
|
199
224
|
|
|
200
|
-
Then filter by City in subsequent operation.
|
|
201
|
-
|
|
202
225
|
## 📚 Operations Reference
|
|
203
226
|
|
|
204
227
|
### Row Operations
|
|
@@ -236,14 +259,117 @@ Then filter by City in subsequent operation.
|
|
|
236
259
|
- `rowNumber`: Row to delete (cannot be 1 - header row)
|
|
237
260
|
- **Returns**: Success status
|
|
238
261
|
|
|
239
|
-
####
|
|
240
|
-
- **Purpose**:
|
|
262
|
+
#### Filter Rows
|
|
263
|
+
- **Purpose**: Filter rows with multiple conditions and logical operators
|
|
241
264
|
- **Parameters**:
|
|
242
|
-
- `
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
-
|
|
265
|
+
- `filterConditions`: Array of filter conditions, each with:
|
|
266
|
+
- `field`: Column name to filter
|
|
267
|
+
- `operator`: equals | notEquals | contains | notContains | greaterThan | greaterOrEqual | lessThan | lessOrEqual | startsWith | endsWith | isEmpty | isNotEmpty
|
|
268
|
+
- `value`: Value to compare (not required for isEmpty/isNotEmpty)
|
|
269
|
+
- `conditionLogic`: and | or - How to combine multiple conditions
|
|
270
|
+
- **Returns**: Array of matching rows with _rowNumber field
|
|
271
|
+
|
|
272
|
+
**Filter Rows Examples:**
|
|
273
|
+
|
|
274
|
+
1. **Single Condition - Exact Match:**
|
|
275
|
+
```javascript
|
|
276
|
+
{
|
|
277
|
+
"operation": "filterRows",
|
|
278
|
+
"filePath": "/data/employees.xlsx",
|
|
279
|
+
"sheetName": "Staff",
|
|
280
|
+
"filterConditions": {
|
|
281
|
+
"conditions": [
|
|
282
|
+
{ "field": "Department", "operator": "equals", "value": "Engineering" }
|
|
283
|
+
]
|
|
284
|
+
},
|
|
285
|
+
"conditionLogic": "and"
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
2. **Multiple Conditions with AND:**
|
|
290
|
+
```javascript
|
|
291
|
+
{
|
|
292
|
+
"operation": "filterRows",
|
|
293
|
+
"filePath": "/data/products.xlsx",
|
|
294
|
+
"sheetName": "Inventory",
|
|
295
|
+
"filterConditions": {
|
|
296
|
+
"conditions": [
|
|
297
|
+
{ "field": "Category", "operator": "equals", "value": "Electronics" },
|
|
298
|
+
{ "field": "Price", "operator": "greaterThan", "value": "100" },
|
|
299
|
+
{ "field": "Stock", "operator": "greaterThan", "value": "0" }
|
|
300
|
+
]
|
|
301
|
+
},
|
|
302
|
+
"conditionLogic": "and"
|
|
303
|
+
}
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
3. **Multiple Conditions with OR:**
|
|
307
|
+
```javascript
|
|
308
|
+
{
|
|
309
|
+
"operation": "filterRows",
|
|
310
|
+
"filterConditions": {
|
|
311
|
+
"conditions": [
|
|
312
|
+
{ "field": "Priority", "operator": "equals", "value": "High" },
|
|
313
|
+
{ "field": "Priority", "operator": "equals", "value": "Urgent" }
|
|
314
|
+
]
|
|
315
|
+
},
|
|
316
|
+
"conditionLogic": "or"
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
4. **Text Search with Contains:**
|
|
321
|
+
```javascript
|
|
322
|
+
{
|
|
323
|
+
"operation": "filterRows",
|
|
324
|
+
"filterConditions": {
|
|
325
|
+
"conditions": [
|
|
326
|
+
{ "field": "Email", "operator": "contains", "value": "@company.com" }
|
|
327
|
+
]
|
|
328
|
+
},
|
|
329
|
+
"conditionLogic": "and"
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
5. **Check for Empty Fields:**
|
|
334
|
+
```javascript
|
|
335
|
+
{
|
|
336
|
+
"operation": "filterRows",
|
|
337
|
+
"filterConditions": {
|
|
338
|
+
"conditions": [
|
|
339
|
+
{ "field": "Phone", "operator": "isEmpty" }
|
|
340
|
+
]
|
|
341
|
+
},
|
|
342
|
+
"conditionLogic": "and"
|
|
343
|
+
}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
6. **Range Filter:**
|
|
347
|
+
```javascript
|
|
348
|
+
{
|
|
349
|
+
"operation": "filterRows",
|
|
350
|
+
"filterConditions": {
|
|
351
|
+
"conditions": [
|
|
352
|
+
{ "field": "Age", "operator": "greaterOrEqual", "value": "18" },
|
|
353
|
+
{ "field": "Age", "operator": "lessOrEqual", "value": "65" }
|
|
354
|
+
]
|
|
355
|
+
},
|
|
356
|
+
"conditionLogic": "and"
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
**Available Operators:**
|
|
361
|
+
- `equals` - Exact match
|
|
362
|
+
- `notEquals` - Not equal to
|
|
363
|
+
- `contains` - Text contains substring
|
|
364
|
+
- `notContains` - Text does not contain substring
|
|
365
|
+
- `greaterThan` - Numeric greater than
|
|
366
|
+
- `greaterOrEqual` - Numeric greater than or equal
|
|
367
|
+
- `lessThan` - Numeric less than
|
|
368
|
+
- `lessOrEqual` - Numeric less than or equal
|
|
369
|
+
- `startsWith` - Text starts with
|
|
370
|
+
- `endsWith` - Text ends with
|
|
371
|
+
- `isEmpty` - Field is empty or null
|
|
372
|
+
- `isNotEmpty` - Field has a value
|
|
247
373
|
|
|
248
374
|
### Worksheet Operations
|
|
249
375
|
|
|
@@ -450,7 +576,7 @@ The node automatically detects columns from the header row (row 1) and maps your
|
|
|
450
576
|
// Error Response Format
|
|
451
577
|
{
|
|
452
578
|
"error": "Column 'InvalidColumn' not found",
|
|
453
|
-
"operation": "
|
|
579
|
+
"operation": "filterRows",
|
|
454
580
|
"resource": "row"
|
|
455
581
|
}
|
|
456
582
|
```
|
|
@@ -537,22 +663,44 @@ npm run lintfix
|
|
|
537
663
|
|
|
538
664
|
## 📝 Changelog
|
|
539
665
|
|
|
540
|
-
### v1.0.
|
|
666
|
+
### v1.0.3 (2026-01-05) - Current
|
|
667
|
+
- 🔄 **BREAKING CHANGE**: Replaced `Find Rows` operation with more powerful `Filter Rows`
|
|
668
|
+
- ✨ **Filter Rows Features**:
|
|
669
|
+
- Support for 12 advanced operators (equals, notEquals, contains, notContains, greaterThan, greaterOrEqual, lessThan, lessOrEqual, startsWith, endsWith, isEmpty, isNotEmpty)
|
|
670
|
+
- Multiple filter conditions with AND/OR logic
|
|
671
|
+
- Automatic row number tracking in results
|
|
672
|
+
- Support for both File Path and Binary Data modes
|
|
673
|
+
- Complex filtering scenarios (ranges, text search, empty checks)
|
|
674
|
+
- 📝 Updated documentation with comprehensive Filter Rows examples
|
|
675
|
+
- 🧪 Added 14 new test cases for Filter Rows functionality
|
|
676
|
+
- 📚 Enhanced AI Agent examples with Filter Rows usage
|
|
677
|
+
|
|
678
|
+
### v1.0.2
|
|
679
|
+
- 🐛 Bug fixes and performance improvements
|
|
680
|
+
- 📝 Documentation updates
|
|
681
|
+
|
|
682
|
+
### v1.0.1
|
|
683
|
+
- 🔧 Minor improvements
|
|
684
|
+
- 📝 README enhancements
|
|
685
|
+
|
|
686
|
+
### v1.0.0
|
|
541
687
|
- ✨ Added full AI Agent integration (`usableAsTool: true`)
|
|
542
688
|
- ✨ Automatic column detection and mapping
|
|
543
689
|
- ✨ Enhanced JSON data handling
|
|
544
690
|
- 📝 Improved parameter descriptions for AI
|
|
545
691
|
- 🐛 Better error messages
|
|
546
692
|
- 📚 Comprehensive AI usage documentation
|
|
547
|
-
- Added worksheet operations
|
|
548
|
-
- Binary data support
|
|
549
|
-
- Auto-save option
|
|
550
|
-
-
|
|
551
|
-
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
-
|
|
555
|
-
-
|
|
693
|
+
- ➕ Added worksheet operations (List, Create, Delete, Rename, Copy, Get Info)
|
|
694
|
+
- ➕ Binary data support
|
|
695
|
+
- ➕ Auto-save option
|
|
696
|
+
- ➕ Insert row operation
|
|
697
|
+
- ➕ Find rows operation (deprecated in v1.0.3)
|
|
698
|
+
|
|
699
|
+
### v0.9.0
|
|
700
|
+
- 🎉 Initial release
|
|
701
|
+
- ✅ Basic CRUD operations (Create, Read, Update, Delete)
|
|
702
|
+
- ✅ File path support
|
|
703
|
+
- ✅ Excel file handling with ExcelJS
|
|
556
704
|
|
|
557
705
|
## 🤝 Contributing
|
|
558
706
|
|
package/README.zh-TW.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
- **新增**:使用自動欄位映射新增列
|
|
20
20
|
- **更新**:部分更新現有列
|
|
21
21
|
- **刪除**:依行號刪除列
|
|
22
|
-
-
|
|
22
|
+
- **過濾**:使用進階條件和多種運算符過濾列
|
|
23
23
|
|
|
24
24
|
### 🗂️ 工作表管理
|
|
25
25
|
- **列出工作表**:取得活頁簿中的所有工作表
|
|
@@ -45,6 +45,25 @@ cd ~/.n8n/nodes
|
|
|
45
45
|
npm install n8n-nodes-excel-ai
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
+
#### 🔒 安全性:修復 form-data 漏洞
|
|
49
|
+
|
|
50
|
+
為了解決來自 `n8n-workflow` 的 `form-data` 安全漏洞,請在安裝目錄的 `package.json` 中加入:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"overrides": {
|
|
55
|
+
"form-data": "^4.0.4"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
然後重新安裝:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npm install
|
|
64
|
+
npm audit
|
|
65
|
+
```
|
|
66
|
+
|
|
48
67
|
### 選項 2:Docker
|
|
49
68
|
|
|
50
69
|
在您的 `docker-compose.yml` 中新增:
|
|
@@ -124,16 +143,18 @@ npm link n8n-nodes-excel-ai
|
|
|
124
143
|
}
|
|
125
144
|
```
|
|
126
145
|
|
|
127
|
-
#### 3.
|
|
146
|
+
#### 3. 過濾列
|
|
128
147
|
```javascript
|
|
129
148
|
// 節點設定
|
|
130
149
|
資源:列
|
|
131
|
-
|
|
150
|
+
操作:過濾列
|
|
132
151
|
檔案路徑:/data/customers.xlsx
|
|
133
152
|
工作表名稱:Customers
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
153
|
+
過濾條件:
|
|
154
|
+
- 欄位:Status
|
|
155
|
+
- 運算符:equals
|
|
156
|
+
- 值:Active
|
|
157
|
+
條件邏輯:and
|
|
137
158
|
|
|
138
159
|
// 輸出
|
|
139
160
|
[
|
|
@@ -176,24 +197,26 @@ npm link n8n-nodes-excel-ai
|
|
|
176
197
|
}
|
|
177
198
|
```
|
|
178
199
|
|
|
179
|
-
#### 範例 3:使用 AI
|
|
200
|
+
#### 範例 3:使用 AI 過濾
|
|
180
201
|
|
|
181
202
|
**使用者:** "找出波士頓的所有活躍客戶"
|
|
182
203
|
|
|
183
204
|
**AI Agent 執行:**
|
|
184
205
|
```javascript
|
|
185
206
|
{
|
|
186
|
-
"operation": "
|
|
207
|
+
"operation": "filterRows",
|
|
187
208
|
"filePath": "/data/customers.xlsx",
|
|
188
209
|
"sheetName": "Customers",
|
|
189
|
-
"
|
|
190
|
-
|
|
191
|
-
|
|
210
|
+
"filterConditions": {
|
|
211
|
+
"conditions": [
|
|
212
|
+
{ "field": "Status", "operator": "equals", "value": "Active" },
|
|
213
|
+
{ "field": "City", "operator": "equals", "value": "Boston" }
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
"conditionLogic": "and"
|
|
192
217
|
}
|
|
193
218
|
```
|
|
194
219
|
|
|
195
|
-
然後在後續操作中按城市篩選。
|
|
196
|
-
|
|
197
220
|
## 📚 操作參考
|
|
198
221
|
|
|
199
222
|
### 列操作
|
|
@@ -231,14 +254,117 @@ npm link n8n-nodes-excel-ai
|
|
|
231
254
|
- `rowNumber`:要刪除的列(不能是 1 - 標題列)
|
|
232
255
|
- **返回**:成功狀態
|
|
233
256
|
|
|
234
|
-
####
|
|
235
|
-
-
|
|
257
|
+
#### 過濾列
|
|
258
|
+
- **用途**:使用多個條件和邏輯運算符過濾列
|
|
236
259
|
- **參數**:
|
|
237
|
-
- `
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
-
|
|
260
|
+
- `filterConditions`:過濾條件陣列,每個條件包含:
|
|
261
|
+
- `field`:要過濾的欄位名稱
|
|
262
|
+
- `operator`:equals | notEquals | contains | notContains | greaterThan | greaterOrEqual | lessThan | lessOrEqual | startsWith | endsWith | isEmpty | isNotEmpty
|
|
263
|
+
- `value`:要比較的值(isEmpty/isNotEmpty 不需要)
|
|
264
|
+
- `conditionLogic`:and | or - 如何組合多個條件
|
|
265
|
+
- **返回**:符合的列陣列,包含 _rowNumber 欄位
|
|
266
|
+
|
|
267
|
+
**過濾列範例:**
|
|
268
|
+
|
|
269
|
+
1. **單一條件 - 精確匹配:**
|
|
270
|
+
```javascript
|
|
271
|
+
{
|
|
272
|
+
"operation": "filterRows",
|
|
273
|
+
"filePath": "/data/employees.xlsx",
|
|
274
|
+
"sheetName": "Staff",
|
|
275
|
+
"filterConditions": {
|
|
276
|
+
"conditions": [
|
|
277
|
+
{ "field": "Department", "operator": "equals", "value": "Engineering" }
|
|
278
|
+
]
|
|
279
|
+
},
|
|
280
|
+
"conditionLogic": "and"
|
|
281
|
+
}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
2. **使用 AND 的多條件:**
|
|
285
|
+
```javascript
|
|
286
|
+
{
|
|
287
|
+
"operation": "filterRows",
|
|
288
|
+
"filePath": "/data/products.xlsx",
|
|
289
|
+
"sheetName": "Inventory",
|
|
290
|
+
"filterConditions": {
|
|
291
|
+
"conditions": [
|
|
292
|
+
{ "field": "Category", "operator": "equals", "value": "Electronics" },
|
|
293
|
+
{ "field": "Price", "operator": "greaterThan", "value": "100" },
|
|
294
|
+
{ "field": "Stock", "operator": "greaterThan", "value": "0" }
|
|
295
|
+
]
|
|
296
|
+
},
|
|
297
|
+
"conditionLogic": "and"
|
|
298
|
+
}
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
3. **使用 OR 的多條件:**
|
|
302
|
+
```javascript
|
|
303
|
+
{
|
|
304
|
+
"operation": "filterRows",
|
|
305
|
+
"filterConditions": {
|
|
306
|
+
"conditions": [
|
|
307
|
+
{ "field": "Priority", "operator": "equals", "value": "High" },
|
|
308
|
+
{ "field": "Priority", "operator": "equals", "value": "Urgent" }
|
|
309
|
+
]
|
|
310
|
+
},
|
|
311
|
+
"conditionLogic": "or"
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
4. **使用 Contains 的文字搜尋:**
|
|
316
|
+
```javascript
|
|
317
|
+
{
|
|
318
|
+
"operation": "filterRows",
|
|
319
|
+
"filterConditions": {
|
|
320
|
+
"conditions": [
|
|
321
|
+
{ "field": "Email", "operator": "contains", "value": "@company.com" }
|
|
322
|
+
]
|
|
323
|
+
},
|
|
324
|
+
"conditionLogic": "and"
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
5. **檢查空白欄位:**
|
|
329
|
+
```javascript
|
|
330
|
+
{
|
|
331
|
+
"operation": "filterRows",
|
|
332
|
+
"filterConditions": {
|
|
333
|
+
"conditions": [
|
|
334
|
+
{ "field": "Phone", "operator": "isEmpty" }
|
|
335
|
+
]
|
|
336
|
+
},
|
|
337
|
+
"conditionLogic": "and"
|
|
338
|
+
}
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
6. **範圍過濾:**
|
|
342
|
+
```javascript
|
|
343
|
+
{
|
|
344
|
+
"operation": "filterRows",
|
|
345
|
+
"filterConditions": {
|
|
346
|
+
"conditions": [
|
|
347
|
+
{ "field": "Age", "operator": "greaterOrEqual", "value": "18" },
|
|
348
|
+
{ "field": "Age", "operator": "lessOrEqual", "value": "65" }
|
|
349
|
+
]
|
|
350
|
+
},
|
|
351
|
+
"conditionLogic": "and"
|
|
352
|
+
}
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
**可用運算符:**
|
|
356
|
+
- `equals` - 精確匹配
|
|
357
|
+
- `notEquals` - 不等於
|
|
358
|
+
- `contains` - 文字包含子字串
|
|
359
|
+
- `notContains` - 文字不包含子字串
|
|
360
|
+
- `greaterThan` - 數值大於
|
|
361
|
+
- `greaterOrEqual` - 數值大於或等於
|
|
362
|
+
- `lessThan` - 數值小於
|
|
363
|
+
- `lessOrEqual` - 數值小於或等於
|
|
364
|
+
- `startsWith` - 文字開始於
|
|
365
|
+
- `endsWith` - 文字結束於
|
|
366
|
+
- `isEmpty` - 欄位為空或 null
|
|
367
|
+
- `isNotEmpty` - 欄位有值
|
|
242
368
|
|
|
243
369
|
### 工作表操作
|
|
244
370
|
|
|
@@ -445,7 +571,7 @@ AI Agent → Excel AI 節點
|
|
|
445
571
|
// 錯誤回應格式
|
|
446
572
|
{
|
|
447
573
|
"error": "Column 'InvalidColumn' not found",
|
|
448
|
-
"operation": "
|
|
574
|
+
"operation": "filterRows",
|
|
449
575
|
"resource": "row"
|
|
450
576
|
}
|
|
451
577
|
```
|
|
@@ -532,22 +658,44 @@ npm run lintfix
|
|
|
532
658
|
|
|
533
659
|
## 📝 變更日誌
|
|
534
660
|
|
|
535
|
-
### v1.0.
|
|
661
|
+
### v1.0.3 (2026-01-05) - 目前版本
|
|
662
|
+
- 🔄 **重大變更**:將 `尋找列` 操作替換為更強大的 `過濾列`
|
|
663
|
+
- ✨ **過濾列功能**:
|
|
664
|
+
- 支援 12 種進階運算符(equals、notEquals、contains、notContains、greaterThan、greaterOrEqual、lessThan、lessOrEqual、startsWith、endsWith、isEmpty、isNotEmpty)
|
|
665
|
+
- 支援 AND/OR 邏輯的多重過濾條件
|
|
666
|
+
- 結果自動追蹤行號
|
|
667
|
+
- 支援檔案路徑和二進位資料模式
|
|
668
|
+
- 支援複雜過濾場景(範圍、文字搜尋、空值檢查)
|
|
669
|
+
- 📝 更新文件,提供完整的過濾列範例
|
|
670
|
+
- 🧪 新增 14 個過濾列功能測試案例
|
|
671
|
+
- 📚 增強 AI Agent 範例,展示過濾列用法
|
|
672
|
+
|
|
673
|
+
### v1.0.2
|
|
674
|
+
- 🐛 錯誤修復和效能改進
|
|
675
|
+
- 📝 文件更新
|
|
676
|
+
|
|
677
|
+
### v1.0.1
|
|
678
|
+
- 🔧 小幅改進
|
|
679
|
+
- 📝 README 增強
|
|
680
|
+
|
|
681
|
+
### v1.0.0
|
|
536
682
|
- ✨ 新增完整的 AI Agent 整合(`usableAsTool: true`)
|
|
537
683
|
- ✨ 自動欄位偵測和映射
|
|
538
684
|
- ✨ 增強的 JSON 資料處理
|
|
539
685
|
- 📝 改進 AI 的參數描述
|
|
540
686
|
- 🐛 更好的錯誤訊息
|
|
541
687
|
- 📚 全面的 AI 使用文件
|
|
542
|
-
-
|
|
543
|
-
- 二進位資料支援
|
|
544
|
-
- 自動儲存選項
|
|
545
|
-
-
|
|
546
|
-
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
-
|
|
550
|
-
-
|
|
688
|
+
- ➕ 新增工作表操作(列表、建立、刪除、重新命名、複製、取得資訊)
|
|
689
|
+
- ➕ 二進位資料支援
|
|
690
|
+
- ➕ 自動儲存選項
|
|
691
|
+
- ➕ 插入列操作
|
|
692
|
+
- ➕ 尋找列操作(在 v1.0.3 中已棄用)
|
|
693
|
+
|
|
694
|
+
### v0.9.0
|
|
695
|
+
- 🎉 初始版本
|
|
696
|
+
- ✅ 基本 CRUD 操作(新增、讀取、更新、刪除)
|
|
697
|
+
- ✅ 檔案路徑支援
|
|
698
|
+
- ✅ 使用 ExcelJS 處理 Excel 檔案
|
|
551
699
|
|
|
552
700
|
## 🤝 貢獻
|
|
553
701
|
|
|
@@ -12,11 +12,11 @@ export declare class ExcelAI implements INodeType {
|
|
|
12
12
|
private static mapRowData;
|
|
13
13
|
private static parseJsonInput;
|
|
14
14
|
private static handleReadRows;
|
|
15
|
+
private static handleFilterRows;
|
|
15
16
|
private static handleAppendRow;
|
|
16
17
|
private static handleInsertRow;
|
|
17
18
|
private static handleUpdateRow;
|
|
18
19
|
private static handleDeleteRow;
|
|
19
|
-
private static handleFindRows;
|
|
20
20
|
private static handleListWorksheets;
|
|
21
21
|
private static handleCreateWorksheet;
|
|
22
22
|
private static handleDeleteWorksheet;
|
|
@@ -132,6 +132,12 @@ class ExcelAI {
|
|
|
132
132
|
description: 'Read data from Excel file',
|
|
133
133
|
action: 'Read rows from Excel',
|
|
134
134
|
},
|
|
135
|
+
{
|
|
136
|
+
name: 'Filter Rows',
|
|
137
|
+
value: 'filterRows',
|
|
138
|
+
description: 'Filter rows by conditions',
|
|
139
|
+
action: 'Filter rows in Excel',
|
|
140
|
+
},
|
|
135
141
|
{
|
|
136
142
|
name: 'Append Row',
|
|
137
143
|
value: 'appendRow',
|
|
@@ -156,12 +162,6 @@ class ExcelAI {
|
|
|
156
162
|
description: 'Delete a specific row',
|
|
157
163
|
action: 'Delete row from Excel',
|
|
158
164
|
},
|
|
159
|
-
{
|
|
160
|
-
name: 'Find Rows',
|
|
161
|
-
value: 'findRows',
|
|
162
|
-
description: 'Search for rows matching criteria',
|
|
163
|
-
action: 'Find rows in Excel',
|
|
164
|
-
},
|
|
165
165
|
],
|
|
166
166
|
default: 'readRows',
|
|
167
167
|
},
|
|
@@ -276,6 +276,148 @@ class ExcelAI {
|
|
|
276
276
|
default: 0,
|
|
277
277
|
description: 'Row number to end reading (0 means read all rows)',
|
|
278
278
|
},
|
|
279
|
+
// Filter Rows Parameters (File Path Mode)
|
|
280
|
+
{
|
|
281
|
+
displayName: 'Filter Conditions',
|
|
282
|
+
name: 'filterConditions',
|
|
283
|
+
type: 'fixedCollection',
|
|
284
|
+
typeOptions: { multipleValues: true },
|
|
285
|
+
displayOptions: {
|
|
286
|
+
show: {
|
|
287
|
+
resource: ['row'],
|
|
288
|
+
operation: ['filterRows'],
|
|
289
|
+
inputMode: ['filePath'],
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
default: {},
|
|
293
|
+
options: [
|
|
294
|
+
{
|
|
295
|
+
name: 'conditions',
|
|
296
|
+
displayName: 'Condition',
|
|
297
|
+
values: [
|
|
298
|
+
{
|
|
299
|
+
displayName: 'Field Name',
|
|
300
|
+
name: 'field',
|
|
301
|
+
type: 'options',
|
|
302
|
+
typeOptions: {
|
|
303
|
+
loadOptionsMethod: 'getColumns',
|
|
304
|
+
loadOptionsDependsOn: ['filePath', 'sheetNameOptions'],
|
|
305
|
+
},
|
|
306
|
+
default: '',
|
|
307
|
+
description: 'Column to filter on',
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
displayName: 'Operator',
|
|
311
|
+
name: 'operator',
|
|
312
|
+
type: 'options',
|
|
313
|
+
options: [
|
|
314
|
+
{ name: 'Equals', value: 'equals' },
|
|
315
|
+
{ name: 'Not Equals', value: 'notEquals' },
|
|
316
|
+
{ name: 'Contains', value: 'contains' },
|
|
317
|
+
{ name: 'Not Contains', value: 'notContains' },
|
|
318
|
+
{ name: 'Greater Than', value: 'greaterThan' },
|
|
319
|
+
{ name: 'Greater or Equal', value: 'greaterOrEqual' },
|
|
320
|
+
{ name: 'Less Than', value: 'lessThan' },
|
|
321
|
+
{ name: 'Less or Equal', value: 'lessOrEqual' },
|
|
322
|
+
{ name: 'Starts With', value: 'startsWith' },
|
|
323
|
+
{ name: 'Ends With', value: 'endsWith' },
|
|
324
|
+
{ name: 'Is Empty', value: 'isEmpty' },
|
|
325
|
+
{ name: 'Is Not Empty', value: 'isNotEmpty' },
|
|
326
|
+
],
|
|
327
|
+
default: 'equals',
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
displayName: 'Value',
|
|
331
|
+
name: 'value',
|
|
332
|
+
type: 'string',
|
|
333
|
+
default: '',
|
|
334
|
+
displayOptions: {
|
|
335
|
+
hide: {
|
|
336
|
+
operator: ['isEmpty', 'isNotEmpty']
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
},
|
|
342
|
+
],
|
|
343
|
+
},
|
|
344
|
+
// Filter Rows Parameters (Binary Data Mode)
|
|
345
|
+
{
|
|
346
|
+
displayName: 'Filter Conditions',
|
|
347
|
+
name: 'filterConditionsBinary',
|
|
348
|
+
type: 'fixedCollection',
|
|
349
|
+
typeOptions: { multipleValues: true },
|
|
350
|
+
displayOptions: {
|
|
351
|
+
show: {
|
|
352
|
+
resource: ['row'],
|
|
353
|
+
operation: ['filterRows'],
|
|
354
|
+
inputMode: ['binaryData'],
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
default: {},
|
|
358
|
+
options: [
|
|
359
|
+
{
|
|
360
|
+
name: 'conditions',
|
|
361
|
+
displayName: 'Condition',
|
|
362
|
+
values: [
|
|
363
|
+
{
|
|
364
|
+
displayName: 'Field Name',
|
|
365
|
+
name: 'field',
|
|
366
|
+
type: 'string',
|
|
367
|
+
default: '',
|
|
368
|
+
description: 'Column name to filter on',
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
displayName: 'Operator',
|
|
372
|
+
name: 'operator',
|
|
373
|
+
type: 'options',
|
|
374
|
+
options: [
|
|
375
|
+
{ name: 'Equals', value: 'equals' },
|
|
376
|
+
{ name: 'Not Equals', value: 'notEquals' },
|
|
377
|
+
{ name: 'Contains', value: 'contains' },
|
|
378
|
+
{ name: 'Not Contains', value: 'notContains' },
|
|
379
|
+
{ name: 'Greater Than', value: 'greaterThan' },
|
|
380
|
+
{ name: 'Greater or Equal', value: 'greaterOrEqual' },
|
|
381
|
+
{ name: 'Less Than', value: 'lessThan' },
|
|
382
|
+
{ name: 'Less or Equal', value: 'lessOrEqual' },
|
|
383
|
+
{ name: 'Starts With', value: 'startsWith' },
|
|
384
|
+
{ name: 'Ends With', value: 'endsWith' },
|
|
385
|
+
{ name: 'Is Empty', value: 'isEmpty' },
|
|
386
|
+
{ name: 'Is Not Empty', value: 'isNotEmpty' },
|
|
387
|
+
],
|
|
388
|
+
default: 'equals',
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
displayName: 'Value',
|
|
392
|
+
name: 'value',
|
|
393
|
+
type: 'string',
|
|
394
|
+
default: '',
|
|
395
|
+
displayOptions: {
|
|
396
|
+
hide: {
|
|
397
|
+
operator: ['isEmpty', 'isNotEmpty']
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
},
|
|
401
|
+
],
|
|
402
|
+
},
|
|
403
|
+
],
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
displayName: 'Condition Logic',
|
|
407
|
+
name: 'conditionLogic',
|
|
408
|
+
type: 'options',
|
|
409
|
+
displayOptions: {
|
|
410
|
+
show: {
|
|
411
|
+
resource: ['row'],
|
|
412
|
+
operation: ['filterRows']
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
options: [
|
|
416
|
+
{ name: 'AND', value: 'and', description: 'All conditions must match' },
|
|
417
|
+
{ name: 'OR', value: 'or', description: 'Any condition must match' },
|
|
418
|
+
],
|
|
419
|
+
default: 'and',
|
|
420
|
+
},
|
|
279
421
|
// Row Data (JSON) for Add/Insert
|
|
280
422
|
{
|
|
281
423
|
displayName: 'Row Data',
|
|
@@ -323,87 +465,6 @@ class ExcelAI {
|
|
|
323
465
|
placeholder: '{"Email": "newemail@example.com", "Status": "Active"}',
|
|
324
466
|
description: 'Data to update as JSON object. Only specified columns will be updated.',
|
|
325
467
|
},
|
|
326
|
-
// Find Rows Parameters
|
|
327
|
-
{
|
|
328
|
-
displayName: 'Search Column',
|
|
329
|
-
name: 'searchColumn',
|
|
330
|
-
type: 'options',
|
|
331
|
-
typeOptions: {
|
|
332
|
-
loadOptionsMethod: 'getColumns',
|
|
333
|
-
loadOptionsDependsOn: ['filePath', 'sheetNameOptions'],
|
|
334
|
-
},
|
|
335
|
-
displayOptions: {
|
|
336
|
-
show: {
|
|
337
|
-
resource: ['row'],
|
|
338
|
-
operation: ['findRows'],
|
|
339
|
-
},
|
|
340
|
-
},
|
|
341
|
-
default: '',
|
|
342
|
-
required: true,
|
|
343
|
-
description: 'Column to search in',
|
|
344
|
-
},
|
|
345
|
-
{
|
|
346
|
-
displayName: 'Search Value',
|
|
347
|
-
name: 'searchValue',
|
|
348
|
-
type: 'string',
|
|
349
|
-
displayOptions: {
|
|
350
|
-
show: {
|
|
351
|
-
resource: ['row'],
|
|
352
|
-
operation: ['findRows'],
|
|
353
|
-
},
|
|
354
|
-
},
|
|
355
|
-
default: '',
|
|
356
|
-
required: true,
|
|
357
|
-
description: 'Value to search for',
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
displayName: 'Match Type',
|
|
361
|
-
name: 'matchType',
|
|
362
|
-
type: 'options',
|
|
363
|
-
options: [
|
|
364
|
-
{
|
|
365
|
-
name: 'Exact',
|
|
366
|
-
value: 'exact',
|
|
367
|
-
description: 'Exact match (case-insensitive)',
|
|
368
|
-
},
|
|
369
|
-
{
|
|
370
|
-
name: 'Contains',
|
|
371
|
-
value: 'contains',
|
|
372
|
-
description: 'Contains substring (case-insensitive)',
|
|
373
|
-
},
|
|
374
|
-
{
|
|
375
|
-
name: 'Starts With',
|
|
376
|
-
value: 'startsWith',
|
|
377
|
-
description: 'Starts with (case-insensitive)',
|
|
378
|
-
},
|
|
379
|
-
{
|
|
380
|
-
name: 'Ends With',
|
|
381
|
-
value: 'endsWith',
|
|
382
|
-
description: 'Ends with (case-insensitive)',
|
|
383
|
-
},
|
|
384
|
-
],
|
|
385
|
-
displayOptions: {
|
|
386
|
-
show: {
|
|
387
|
-
resource: ['row'],
|
|
388
|
-
operation: ['findRows'],
|
|
389
|
-
},
|
|
390
|
-
},
|
|
391
|
-
default: 'exact',
|
|
392
|
-
description: 'How to match the search value',
|
|
393
|
-
},
|
|
394
|
-
{
|
|
395
|
-
displayName: 'Return Row Numbers Only',
|
|
396
|
-
name: 'returnRowNumbers',
|
|
397
|
-
type: 'boolean',
|
|
398
|
-
displayOptions: {
|
|
399
|
-
show: {
|
|
400
|
-
resource: ['row'],
|
|
401
|
-
operation: ['findRows'],
|
|
402
|
-
},
|
|
403
|
-
},
|
|
404
|
-
default: false,
|
|
405
|
-
description: 'Whether to return only row numbers instead of full row data',
|
|
406
|
-
},
|
|
407
468
|
// Worksheet Parameters
|
|
408
469
|
{
|
|
409
470
|
displayName: 'Worksheet Name',
|
|
@@ -596,31 +657,37 @@ class ExcelAI {
|
|
|
596
657
|
async execute() {
|
|
597
658
|
const items = this.getInputData();
|
|
598
659
|
const returnData = [];
|
|
599
|
-
|
|
660
|
+
// For read-only operations (readRows, filterRows), execute once using the first item's parameters
|
|
661
|
+
const resource = this.getNodeParameter('resource', 0);
|
|
662
|
+
const operation = resource === 'row' ? this.getNodeParameter('operation', 0) : '';
|
|
663
|
+
const isReadOnlyOperation = operation === 'readRows' || operation === 'filterRows';
|
|
664
|
+
const itemsToProcess = isReadOnlyOperation ? [items[0]] : items;
|
|
665
|
+
for (let itemIndex = 0; itemIndex < itemsToProcess.length; itemIndex++) {
|
|
600
666
|
try {
|
|
601
|
-
const
|
|
602
|
-
const
|
|
667
|
+
const currentIndex = isReadOnlyOperation ? 0 : itemIndex;
|
|
668
|
+
const resource = this.getNodeParameter('resource', currentIndex);
|
|
669
|
+
const inputMode = this.getNodeParameter('inputMode', currentIndex);
|
|
603
670
|
// Load workbook
|
|
604
671
|
let workbook;
|
|
605
672
|
let filePath = '';
|
|
606
673
|
let result;
|
|
607
674
|
if (inputMode === 'filePath') {
|
|
608
|
-
filePath = this.getNodeParameter('filePath',
|
|
675
|
+
filePath = this.getNodeParameter('filePath', currentIndex);
|
|
609
676
|
workbook = new ExcelJS.Workbook();
|
|
610
677
|
await workbook.xlsx.readFile(filePath);
|
|
611
678
|
}
|
|
612
679
|
else {
|
|
613
|
-
const binaryPropertyName = this.getNodeParameter('binaryPropertyName',
|
|
614
|
-
await this.helpers.assertBinaryData(
|
|
615
|
-
const buffer = await this.helpers.getBinaryDataBuffer(
|
|
680
|
+
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', currentIndex);
|
|
681
|
+
await this.helpers.assertBinaryData(currentIndex, binaryPropertyName);
|
|
682
|
+
const buffer = await this.helpers.getBinaryDataBuffer(currentIndex, binaryPropertyName);
|
|
616
683
|
workbook = new ExcelJS.Workbook();
|
|
617
684
|
await workbook.xlsx.load(buffer);
|
|
618
685
|
}
|
|
619
686
|
if (resource === 'row') {
|
|
620
|
-
const operation = this.getNodeParameter('operation',
|
|
687
|
+
const operation = this.getNodeParameter('operation', currentIndex);
|
|
621
688
|
let sheetName = inputMode === 'filePath'
|
|
622
|
-
? this.getNodeParameter('sheetNameOptions',
|
|
623
|
-
: this.getNodeParameter('sheetName',
|
|
689
|
+
? this.getNodeParameter('sheetNameOptions', currentIndex, '')
|
|
690
|
+
: this.getNodeParameter('sheetName', currentIndex, '');
|
|
624
691
|
// If no sheet name specified, use the first worksheet
|
|
625
692
|
if (!sheetName) {
|
|
626
693
|
const firstWorksheet = workbook.worksheets[0];
|
|
@@ -636,71 +703,71 @@ class ExcelAI {
|
|
|
636
703
|
const columnMap = ExcelAI.getColumnMapping(worksheet);
|
|
637
704
|
switch (operation) {
|
|
638
705
|
case 'readRows':
|
|
639
|
-
result = await ExcelAI.handleReadRows(this, worksheet,
|
|
706
|
+
result = await ExcelAI.handleReadRows(this, worksheet, currentIndex);
|
|
707
|
+
break;
|
|
708
|
+
case 'filterRows':
|
|
709
|
+
result = await ExcelAI.handleFilterRows(this, worksheet, currentIndex, inputMode);
|
|
640
710
|
break;
|
|
641
711
|
case 'appendRow':
|
|
642
|
-
result = await ExcelAI.handleAppendRow(this, worksheet,
|
|
643
|
-
if (inputMode === 'filePath' && this.getNodeParameter('autoSave',
|
|
712
|
+
result = await ExcelAI.handleAppendRow(this, worksheet, currentIndex, columnMap);
|
|
713
|
+
if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
|
|
644
714
|
await workbook.xlsx.writeFile(filePath);
|
|
645
715
|
}
|
|
646
716
|
break;
|
|
647
717
|
case 'insertRow':
|
|
648
|
-
result = await ExcelAI.handleInsertRow(this, worksheet,
|
|
649
|
-
if (inputMode === 'filePath' && this.getNodeParameter('autoSave',
|
|
718
|
+
result = await ExcelAI.handleInsertRow(this, worksheet, currentIndex, columnMap);
|
|
719
|
+
if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
|
|
650
720
|
await workbook.xlsx.writeFile(filePath);
|
|
651
721
|
}
|
|
652
722
|
break;
|
|
653
723
|
case 'updateRow':
|
|
654
|
-
result = await ExcelAI.handleUpdateRow(this, worksheet,
|
|
655
|
-
if (inputMode === 'filePath' && this.getNodeParameter('autoSave',
|
|
724
|
+
result = await ExcelAI.handleUpdateRow(this, worksheet, currentIndex, columnMap);
|
|
725
|
+
if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
|
|
656
726
|
await workbook.xlsx.writeFile(filePath);
|
|
657
727
|
}
|
|
658
728
|
break;
|
|
659
729
|
case 'deleteRow':
|
|
660
|
-
result = await ExcelAI.handleDeleteRow(this, worksheet,
|
|
661
|
-
if (inputMode === 'filePath' && this.getNodeParameter('autoSave',
|
|
730
|
+
result = await ExcelAI.handleDeleteRow(this, worksheet, currentIndex);
|
|
731
|
+
if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
|
|
662
732
|
await workbook.xlsx.writeFile(filePath);
|
|
663
733
|
}
|
|
664
734
|
break;
|
|
665
|
-
case 'findRows':
|
|
666
|
-
result = await ExcelAI.handleFindRows(this, worksheet, itemIndex, columnMap);
|
|
667
|
-
break;
|
|
668
735
|
default:
|
|
669
736
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
|
|
670
737
|
}
|
|
671
738
|
}
|
|
672
739
|
else if (resource === 'worksheet') {
|
|
673
|
-
const worksheetOperation = this.getNodeParameter('worksheetOperation',
|
|
740
|
+
const worksheetOperation = this.getNodeParameter('worksheetOperation', currentIndex);
|
|
674
741
|
switch (worksheetOperation) {
|
|
675
742
|
case 'listWorksheets':
|
|
676
|
-
result = await ExcelAI.handleListWorksheets(this, workbook,
|
|
743
|
+
result = await ExcelAI.handleListWorksheets(this, workbook, currentIndex);
|
|
677
744
|
break;
|
|
678
745
|
case 'createWorksheet':
|
|
679
|
-
result = await ExcelAI.handleCreateWorksheet(this, workbook,
|
|
680
|
-
if (inputMode === 'filePath' && this.getNodeParameter('autoSave',
|
|
746
|
+
result = await ExcelAI.handleCreateWorksheet(this, workbook, currentIndex);
|
|
747
|
+
if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
|
|
681
748
|
await workbook.xlsx.writeFile(filePath);
|
|
682
749
|
}
|
|
683
750
|
break;
|
|
684
751
|
case 'deleteWorksheet':
|
|
685
|
-
result = await ExcelAI.handleDeleteWorksheet(this, workbook,
|
|
686
|
-
if (inputMode === 'filePath' && this.getNodeParameter('autoSave',
|
|
752
|
+
result = await ExcelAI.handleDeleteWorksheet(this, workbook, currentIndex);
|
|
753
|
+
if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
|
|
687
754
|
await workbook.xlsx.writeFile(filePath);
|
|
688
755
|
}
|
|
689
756
|
break;
|
|
690
757
|
case 'renameWorksheet':
|
|
691
|
-
result = await ExcelAI.handleRenameWorksheet(this, workbook,
|
|
692
|
-
if (inputMode === 'filePath' && this.getNodeParameter('autoSave',
|
|
758
|
+
result = await ExcelAI.handleRenameWorksheet(this, workbook, currentIndex);
|
|
759
|
+
if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
|
|
693
760
|
await workbook.xlsx.writeFile(filePath);
|
|
694
761
|
}
|
|
695
762
|
break;
|
|
696
763
|
case 'copyWorksheet':
|
|
697
|
-
result = await ExcelAI.handleCopyWorksheet(this, workbook,
|
|
698
|
-
if (inputMode === 'filePath' && this.getNodeParameter('autoSave',
|
|
764
|
+
result = await ExcelAI.handleCopyWorksheet(this, workbook, currentIndex);
|
|
765
|
+
if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
|
|
699
766
|
await workbook.xlsx.writeFile(filePath);
|
|
700
767
|
}
|
|
701
768
|
break;
|
|
702
769
|
case 'getWorksheetInfo':
|
|
703
|
-
result = await ExcelAI.handleGetWorksheetInfo(this, workbook,
|
|
770
|
+
result = await ExcelAI.handleGetWorksheetInfo(this, workbook, currentIndex);
|
|
704
771
|
break;
|
|
705
772
|
default:
|
|
706
773
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown worksheet operation: ${worksheetOperation}`);
|
|
@@ -723,11 +790,12 @@ class ExcelAI {
|
|
|
723
790
|
catch (error) {
|
|
724
791
|
if (this.continueOnFail()) {
|
|
725
792
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
793
|
+
const currentIndex = isReadOnlyOperation ? 0 : itemIndex;
|
|
726
794
|
returnData.push({
|
|
727
795
|
json: {
|
|
728
796
|
error: errorMessage,
|
|
729
|
-
resource: this.getNodeParameter('resource',
|
|
730
|
-
operation: this.getNodeParameter('operation',
|
|
797
|
+
resource: this.getNodeParameter('resource', currentIndex, ''),
|
|
798
|
+
operation: this.getNodeParameter('operation', currentIndex, ''),
|
|
731
799
|
},
|
|
732
800
|
});
|
|
733
801
|
continue;
|
|
@@ -798,6 +866,82 @@ class ExcelAI {
|
|
|
798
866
|
}
|
|
799
867
|
return rows;
|
|
800
868
|
}
|
|
869
|
+
static async handleFilterRows(context, worksheet, itemIndex, inputMode) {
|
|
870
|
+
var _a;
|
|
871
|
+
const conditionLogic = context.getNodeParameter('conditionLogic', itemIndex, 'and');
|
|
872
|
+
// Get filter conditions based on input mode
|
|
873
|
+
const filterConditions = inputMode === 'filePath'
|
|
874
|
+
? context.getNodeParameter('filterConditions', itemIndex)
|
|
875
|
+
: context.getNodeParameter('filterConditionsBinary', itemIndex);
|
|
876
|
+
// Get all rows first
|
|
877
|
+
const headerRow = worksheet.getRow(1);
|
|
878
|
+
const headers = [];
|
|
879
|
+
headerRow.eachCell((cell, colNumber) => {
|
|
880
|
+
var _a;
|
|
881
|
+
const header = ((_a = cell.value) === null || _a === void 0 ? void 0 : _a.toString()) || '';
|
|
882
|
+
headers[colNumber - 1] = header;
|
|
883
|
+
});
|
|
884
|
+
const allRows = [];
|
|
885
|
+
worksheet.eachRow((row, rowNumber) => {
|
|
886
|
+
if (rowNumber === 1)
|
|
887
|
+
return; // Skip header
|
|
888
|
+
const rowData = { _rowNumber: rowNumber };
|
|
889
|
+
row.eachCell((cell, colNumber) => {
|
|
890
|
+
const header = headers[colNumber - 1];
|
|
891
|
+
if (header) {
|
|
892
|
+
rowData[header] = cell.value;
|
|
893
|
+
}
|
|
894
|
+
});
|
|
895
|
+
// Skip empty rows
|
|
896
|
+
const hasData = Object.keys(rowData).some(key => key !== '_rowNumber' && rowData[key]);
|
|
897
|
+
if (hasData) {
|
|
898
|
+
allRows.push(rowData);
|
|
899
|
+
}
|
|
900
|
+
});
|
|
901
|
+
// If no conditions, return all rows
|
|
902
|
+
if (!((_a = filterConditions.conditions) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
903
|
+
return allRows;
|
|
904
|
+
}
|
|
905
|
+
// Filter rows based on conditions
|
|
906
|
+
const filteredRows = allRows.filter((rowData) => {
|
|
907
|
+
const results = filterConditions.conditions.map((c) => {
|
|
908
|
+
const val = rowData[c.field];
|
|
909
|
+
const compareVal = c.value;
|
|
910
|
+
switch (c.operator) {
|
|
911
|
+
case 'equals':
|
|
912
|
+
return String(val) === String(compareVal);
|
|
913
|
+
case 'notEquals':
|
|
914
|
+
return String(val) !== String(compareVal);
|
|
915
|
+
case 'contains':
|
|
916
|
+
return String(val).includes(String(compareVal));
|
|
917
|
+
case 'notContains':
|
|
918
|
+
return !String(val).includes(String(compareVal));
|
|
919
|
+
case 'greaterThan':
|
|
920
|
+
return Number(val) > Number(compareVal);
|
|
921
|
+
case 'greaterOrEqual':
|
|
922
|
+
return Number(val) >= Number(compareVal);
|
|
923
|
+
case 'lessThan':
|
|
924
|
+
return Number(val) < Number(compareVal);
|
|
925
|
+
case 'lessOrEqual':
|
|
926
|
+
return Number(val) <= Number(compareVal);
|
|
927
|
+
case 'startsWith':
|
|
928
|
+
return String(val).startsWith(String(compareVal));
|
|
929
|
+
case 'endsWith':
|
|
930
|
+
return String(val).endsWith(String(compareVal));
|
|
931
|
+
case 'isEmpty':
|
|
932
|
+
return !val || val === '' || val === null || val === undefined;
|
|
933
|
+
case 'isNotEmpty':
|
|
934
|
+
return val && val !== '' && val !== null && val !== undefined;
|
|
935
|
+
default:
|
|
936
|
+
return false;
|
|
937
|
+
}
|
|
938
|
+
});
|
|
939
|
+
return conditionLogic === 'and'
|
|
940
|
+
? results.every((r) => r)
|
|
941
|
+
: results.some((r) => r);
|
|
942
|
+
});
|
|
943
|
+
return filteredRows;
|
|
944
|
+
}
|
|
801
945
|
static async handleAppendRow(context, worksheet, itemIndex, columnMap) {
|
|
802
946
|
const rowDataInput = context.getNodeParameter('rowData', itemIndex);
|
|
803
947
|
const data = ExcelAI.parseJsonInput(context, rowDataInput);
|
|
@@ -865,87 +1009,6 @@ class ExcelAI {
|
|
|
865
1009
|
message: `Row ${rowNumber} deleted successfully`,
|
|
866
1010
|
};
|
|
867
1011
|
}
|
|
868
|
-
static async handleFindRows(context, worksheet, itemIndex, columnMap) {
|
|
869
|
-
const searchColumn = context.getNodeParameter('searchColumn', itemIndex);
|
|
870
|
-
const searchValue = context.getNodeParameter('searchValue', itemIndex);
|
|
871
|
-
const matchType = context.getNodeParameter('matchType', itemIndex, 'exact');
|
|
872
|
-
const returnRowNumbers = context.getNodeParameter('returnRowNumbers', itemIndex, false);
|
|
873
|
-
const colNumber = columnMap.get(searchColumn);
|
|
874
|
-
if (!colNumber) {
|
|
875
|
-
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Column "${searchColumn}" not found`);
|
|
876
|
-
}
|
|
877
|
-
const matchingRows = [];
|
|
878
|
-
const headerRow = worksheet.getRow(1);
|
|
879
|
-
const headers = [];
|
|
880
|
-
headerRow.eachCell((cell, colNum) => {
|
|
881
|
-
var _a;
|
|
882
|
-
headers[colNum - 1] = ((_a = cell.value) === null || _a === void 0 ? void 0 : _a.toString()) || '';
|
|
883
|
-
});
|
|
884
|
-
worksheet.eachRow((row, rowNumber) => {
|
|
885
|
-
var _a;
|
|
886
|
-
if (rowNumber === 1)
|
|
887
|
-
return;
|
|
888
|
-
const cellValue = ((_a = row.getCell(colNumber).value) === null || _a === void 0 ? void 0 : _a.toString()) || '';
|
|
889
|
-
let isMatch = false;
|
|
890
|
-
const searchLower = searchValue.toLowerCase();
|
|
891
|
-
const cellLower = cellValue.toLowerCase();
|
|
892
|
-
switch (matchType) {
|
|
893
|
-
case 'exact':
|
|
894
|
-
isMatch = cellLower === searchLower;
|
|
895
|
-
break;
|
|
896
|
-
case 'contains':
|
|
897
|
-
isMatch = cellLower.includes(searchLower);
|
|
898
|
-
break;
|
|
899
|
-
case 'startsWith':
|
|
900
|
-
isMatch = cellLower.startsWith(searchLower);
|
|
901
|
-
break;
|
|
902
|
-
case 'endsWith':
|
|
903
|
-
isMatch = cellLower.endsWith(searchLower);
|
|
904
|
-
break;
|
|
905
|
-
}
|
|
906
|
-
if (isMatch) {
|
|
907
|
-
if (returnRowNumbers) {
|
|
908
|
-
matchingRows.push(rowNumber);
|
|
909
|
-
}
|
|
910
|
-
else {
|
|
911
|
-
const rowData = { _rowNumber: rowNumber };
|
|
912
|
-
row.eachCell((cell, colNum) => {
|
|
913
|
-
const header = headers[colNum - 1];
|
|
914
|
-
if (header) {
|
|
915
|
-
rowData[header] = cell.value;
|
|
916
|
-
}
|
|
917
|
-
});
|
|
918
|
-
matchingRows.push(rowData);
|
|
919
|
-
}
|
|
920
|
-
}
|
|
921
|
-
});
|
|
922
|
-
if (returnRowNumbers) {
|
|
923
|
-
return [
|
|
924
|
-
{
|
|
925
|
-
operation: 'findRows',
|
|
926
|
-
searchColumn,
|
|
927
|
-
searchValue,
|
|
928
|
-
matchType,
|
|
929
|
-
rowNumbers: matchingRows,
|
|
930
|
-
count: matchingRows.length,
|
|
931
|
-
},
|
|
932
|
-
];
|
|
933
|
-
}
|
|
934
|
-
// Return message if no rows found
|
|
935
|
-
if (matchingRows.length === 0) {
|
|
936
|
-
return [
|
|
937
|
-
{
|
|
938
|
-
operation: 'findRows',
|
|
939
|
-
searchColumn,
|
|
940
|
-
searchValue,
|
|
941
|
-
matchType,
|
|
942
|
-
count: 0,
|
|
943
|
-
message: 'No matching rows found',
|
|
944
|
-
},
|
|
945
|
-
];
|
|
946
|
-
}
|
|
947
|
-
return matchingRows;
|
|
948
|
-
}
|
|
949
1012
|
// ========== Worksheet Operation Handlers ==========
|
|
950
1013
|
static async handleListWorksheets(context, workbook, itemIndex) {
|
|
951
1014
|
const includeHidden = context.getNodeParameter('includeHidden', itemIndex, false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExcelAI.node.js","sourceRoot":"","sources":["../../../nodes/ExcelAI/ExcelAI.node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExcelAI.node.js","sourceRoot":"","sources":["../../../nodes/ExcelAI/ExcelAI.node.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-excel-ai",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Excel CRUD operations for n8n with AI Agent support - Perform read, write, update, delete operations on Excel files",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"typescript": "5.1.6"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"exceljs": "^4.
|
|
67
|
-
"form-data": "^4.0.
|
|
66
|
+
"exceljs": "^4.4.0",
|
|
67
|
+
"form-data": "^4.0.5"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"n8n-workflow": "*"
|
|
71
71
|
},
|
|
72
72
|
"overrides": {
|
|
73
|
-
"form-data": "^4.0.
|
|
73
|
+
"form-data": "^4.0.5"
|
|
74
74
|
}
|
|
75
75
|
}
|