n8n-nodes-excel-ai 1.0.3 → 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 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
- - **Search**: Find rows with advanced matching (exact, contains, starts/ends with)
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
@@ -147,17 +147,19 @@ Row Data: {"Name": "Bob Wilson", "Email": "bob@example.com", "Status": "Active"}
147
147
  }
148
148
  ```
149
149
 
150
- #### 3. Find Rows
150
+ #### 3. Filter Rows
151
151
 
152
152
  ```javascript
153
153
  // Node Configuration
154
154
  Resource: Row
155
- Operation: Find Rows
155
+ Operation: Filter Rows
156
156
  File Path: /data/customers.xlsx
157
157
  Sheet Name: Customers
158
- Search Column: Status
159
- Search Value: Active
160
- Match Type: exact
158
+ Filter Conditions:
159
+ - Field: Status
160
+ - Operator: equals
161
+ - Value: Active
162
+ Condition Logic: and
161
163
 
162
164
  // Output
163
165
  [
@@ -200,24 +202,26 @@ Match Type: exact
200
202
  }
201
203
  ```
202
204
 
203
- #### Example 3: Search with AI
205
+ #### Example 3: Filter with AI
204
206
 
205
207
  **User:** "Find all active customers in Boston"
206
208
 
207
209
  **AI Agent Execution:**
208
210
  ```javascript
209
211
  {
210
- "operation": "findRows",
212
+ "operation": "filterRows",
211
213
  "filePath": "/data/customers.xlsx",
212
214
  "sheetName": "Customers",
213
- "searchColumn": "Status",
214
- "searchValue": "Active",
215
- "matchType": "exact"
215
+ "filterConditions": {
216
+ "conditions": [
217
+ { "field": "Status", "operator": "equals", "value": "Active" },
218
+ { "field": "City", "operator": "equals", "value": "Boston" }
219
+ ]
220
+ },
221
+ "conditionLogic": "and"
216
222
  }
217
223
  ```
218
224
 
219
- Then filter by City in subsequent operation.
220
-
221
225
  ## 📚 Operations Reference
222
226
 
223
227
  ### Row Operations
@@ -255,14 +259,117 @@ Then filter by City in subsequent operation.
255
259
  - `rowNumber`: Row to delete (cannot be 1 - header row)
256
260
  - **Returns**: Success status
257
261
 
258
- #### Find Rows
259
- - **Purpose**: Search for rows matching criteria
262
+ #### Filter Rows
263
+ - **Purpose**: Filter rows with multiple conditions and logical operators
260
264
  - **Parameters**:
261
- - `searchColumn`: Column to search in
262
- - `searchValue`: Value to search for
263
- - `matchType`: exact | contains | startsWith | endsWith
264
- - `returnRowNumbers`: Return only row numbers (default: false)
265
- - **Returns**: Array of matching rows or row numbers
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
266
373
 
267
374
  ### Worksheet Operations
268
375
 
@@ -469,7 +576,7 @@ The node automatically detects columns from the header row (row 1) and maps your
469
576
  // Error Response Format
470
577
  {
471
578
  "error": "Column 'InvalidColumn' not found",
472
- "operation": "findRows",
579
+ "operation": "filterRows",
473
580
  "resource": "row"
474
581
  }
475
582
  ```
@@ -556,22 +663,44 @@ npm run lintfix
556
663
 
557
664
  ## 📝 Changelog
558
665
 
559
- ### v1.0.0 (Latest)
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
560
687
  - ✨ Added full AI Agent integration (`usableAsTool: true`)
561
688
  - ✨ Automatic column detection and mapping
562
689
  - ✨ Enhanced JSON data handling
563
690
  - 📝 Improved parameter descriptions for AI
564
691
  - 🐛 Better error messages
565
692
  - 📚 Comprehensive AI usage documentation
566
- - Added worksheet operations
567
- - Binary data support
568
- - Auto-save option
569
- - Find rows operation
570
- - Advanced search with match types
571
- - Insert row operation
572
- - Initial release
573
- - Basic CRUD operations
574
- - File path support
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
575
704
 
576
705
  ## 🤝 Contributing
577
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
  - **列出工作表**:取得活頁簿中的所有工作表
@@ -143,16 +143,18 @@ npm link n8n-nodes-excel-ai
143
143
  }
144
144
  ```
145
145
 
146
- #### 3. 尋找列
146
+ #### 3. 過濾列
147
147
  ```javascript
148
148
  // 節點設定
149
149
  資源:列
150
- 操作:尋找列
150
+ 操作:過濾列
151
151
  檔案路徑:/data/customers.xlsx
152
152
  工作表名稱:Customers
153
- 搜尋欄位:Status
154
- 搜尋值:Active
155
- 匹配類型:exact
153
+ 過濾條件:
154
+ - 欄位:Status
155
+ - 運算符:equals
156
+ - 值:Active
157
+ 條件邏輯:and
156
158
 
157
159
  // 輸出
158
160
  [
@@ -195,24 +197,26 @@ npm link n8n-nodes-excel-ai
195
197
  }
196
198
  ```
197
199
 
198
- #### 範例 3:使用 AI 搜尋
200
+ #### 範例 3:使用 AI 過濾
199
201
 
200
202
  **使用者:** "找出波士頓的所有活躍客戶"
201
203
 
202
204
  **AI Agent 執行:**
203
205
  ```javascript
204
206
  {
205
- "operation": "findRows",
207
+ "operation": "filterRows",
206
208
  "filePath": "/data/customers.xlsx",
207
209
  "sheetName": "Customers",
208
- "searchColumn": "Status",
209
- "searchValue": "Active",
210
- "matchType": "exact"
210
+ "filterConditions": {
211
+ "conditions": [
212
+ { "field": "Status", "operator": "equals", "value": "Active" },
213
+ { "field": "City", "operator": "equals", "value": "Boston" }
214
+ ]
215
+ },
216
+ "conditionLogic": "and"
211
217
  }
212
218
  ```
213
219
 
214
- 然後在後續操作中按城市篩選。
215
-
216
220
  ## 📚 操作參考
217
221
 
218
222
  ### 列操作
@@ -250,14 +254,117 @@ npm link n8n-nodes-excel-ai
250
254
  - `rowNumber`:要刪除的列(不能是 1 - 標題列)
251
255
  - **返回**:成功狀態
252
256
 
253
- #### 尋找列
254
- - **用途**:搜尋符合條件的列
257
+ #### 過濾列
258
+ - **用途**:使用多個條件和邏輯運算符過濾列
255
259
  - **參數**:
256
- - `searchColumn`:要搜尋的欄位
257
- - `searchValue`:要搜尋的值
258
- - `matchType`:exact | contains | startsWith | endsWith
259
- - `returnRowNumbers`:只返回列號(預設:false)
260
- - **返回**:符合列的陣列或列號
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` - 欄位有值
261
368
 
262
369
  ### 工作表操作
263
370
 
@@ -464,7 +571,7 @@ AI Agent → Excel AI 節點
464
571
  // 錯誤回應格式
465
572
  {
466
573
  "error": "Column 'InvalidColumn' not found",
467
- "operation": "findRows",
574
+ "operation": "filterRows",
468
575
  "resource": "row"
469
576
  }
470
577
  ```
@@ -551,22 +658,44 @@ npm run lintfix
551
658
 
552
659
  ## 📝 變更日誌
553
660
 
554
- ### v1.0.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
555
682
  - ✨ 新增完整的 AI Agent 整合(`usableAsTool: true`)
556
683
  - ✨ 自動欄位偵測和映射
557
684
  - ✨ 增強的 JSON 資料處理
558
685
  - 📝 改進 AI 的參數描述
559
686
  - 🐛 更好的錯誤訊息
560
687
  - 📚 全面的 AI 使用文件
561
- - 新增工作表操作
562
- - 二進位資料支援
563
- - 自動儲存選項
564
- - 尋找列操作
565
- - 帶匹配類型的進階搜尋
566
- - 插入列操作
567
- - 初始版本
568
- - 基本 CRUD 操作
569
- - 檔案路徑支援
688
+ - ➕ 新增工作表操作(列表、建立、刪除、重新命名、複製、取得資訊)
689
+ - 二進位資料支援
690
+ - 自動儲存選項
691
+ - ➕ 插入列操作
692
+ - ➕ 尋找列操作(在 v1.0.3 中已棄用)
693
+
694
+ ### v0.9.0
695
+ - 🎉 初始版本
696
+ - ✅ 基本 CRUD 操作(新增、讀取、更新、刪除)
697
+ - ✅ 檔案路徑支援
698
+ - ✅ 使用 ExcelJS 處理 Excel 檔案
570
699
 
571
700
  ## 🤝 貢獻
572
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
- for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
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 resource = this.getNodeParameter('resource', itemIndex);
602
- const inputMode = this.getNodeParameter('inputMode', itemIndex);
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', itemIndex);
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', itemIndex);
614
- await this.helpers.assertBinaryData(itemIndex, binaryPropertyName);
615
- const buffer = await this.helpers.getBinaryDataBuffer(itemIndex, binaryPropertyName);
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', itemIndex);
687
+ const operation = this.getNodeParameter('operation', currentIndex);
621
688
  let sheetName = inputMode === 'filePath'
622
- ? this.getNodeParameter('sheetNameOptions', itemIndex, '')
623
- : this.getNodeParameter('sheetName', itemIndex, '');
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, itemIndex);
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, itemIndex, columnMap);
643
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
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, itemIndex, columnMap);
649
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
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, itemIndex, columnMap);
655
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
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, itemIndex);
661
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
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', itemIndex);
740
+ const worksheetOperation = this.getNodeParameter('worksheetOperation', currentIndex);
674
741
  switch (worksheetOperation) {
675
742
  case 'listWorksheets':
676
- result = await ExcelAI.handleListWorksheets(this, workbook, itemIndex);
743
+ result = await ExcelAI.handleListWorksheets(this, workbook, currentIndex);
677
744
  break;
678
745
  case 'createWorksheet':
679
- result = await ExcelAI.handleCreateWorksheet(this, workbook, itemIndex);
680
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
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, itemIndex);
686
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
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, itemIndex);
692
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
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, itemIndex);
698
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
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, itemIndex);
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', itemIndex, ''),
730
- operation: this.getNodeParameter('operation', itemIndex, ''),
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",
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",