@@ -724,6 +724,7 @@ List<RegexResult> GetMatchesFor(string text, string fileName = "", int selection
724
724
GetMatchesFor ( GetCellText ( cell ) )
725
725
. Select ( match =>
726
726
{
727
+ match . Parent = excelSheetResult ;
727
728
match . InfoSup = cell . Address . ToString ( ) ;
728
729
return match ;
729
730
} ) ) ;
@@ -1377,7 +1378,7 @@ private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e
1377
1378
{
1378
1379
try
1379
1380
{
1380
- if ( sender is TreeViewItem treeViewItem && treeViewItem . DataContext is RegexResult regexResult )
1381
+ if ( sender is TreeViewItem treeViewItem && treeViewItem . DataContext is RegexResult regexResult && regexResult is not RegexExcelSheetResult )
1381
1382
{
1382
1383
if ( regexResult . FileName . Length > 0
1383
1384
&& ! GetCurrentFileName ( ) . Equals ( regexResult . FileName , StringComparison . OrdinalIgnoreCase )
@@ -1386,6 +1387,24 @@ private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e
1386
1387
{
1387
1388
SetPosition ? . Invoke ( regexResult . Index , regexResult . Length ) ;
1388
1389
}
1390
+ else if ( Config . Instance . TextSourceOn == RegexTextSource . Excel )
1391
+ {
1392
+ var searchResult = regexResult ;
1393
+ RegexExcelSheetResult excelSheetResult = null ;
1394
+
1395
+ while ( searchResult != null )
1396
+ {
1397
+ if ( searchResult is RegexExcelSheetResult )
1398
+ excelSheetResult = ( RegexExcelSheetResult ) searchResult ;
1399
+ searchResult = searchResult . Parent ;
1400
+ }
1401
+
1402
+ if ( excelSheetResult != null )
1403
+ {
1404
+ string launchExcelVbsScriptPath = Path . Combine ( Path . GetDirectoryName ( Assembly . GetExecutingAssembly ( ) . Location ) , "LaunchExcelVbsScript.vbs" ) ;
1405
+ Process . Start ( launchExcelVbsScriptPath , $ "\" { Config . Instance . TextSourceExcelPath } \" \" { excelSheetResult . SheetName } \" \" { regexResult . InfoSup } \" ") ;
1406
+ }
1407
+ }
1389
1408
1390
1409
e . Handled = true ;
1391
1410
}
@@ -1400,14 +1419,33 @@ private void TreeViewItem_KeyDown(object sender, KeyEventArgs e)
1400
1419
if ( e . Key == Key . Enter
1401
1420
&& sender is TreeViewItem treeViewItem
1402
1421
&& treeViewItem . DataContext is RegexResult regexResult
1403
- && regexResult . FileName . Length > 0
1404
- && ! GetCurrentFileName ( ) . Equals ( regexResult . FileName , StringComparison . OrdinalIgnoreCase ) )
1422
+ && regexResult is not RegexExcelSheetResult )
1405
1423
{
1406
- if ( ( TryOpen ? . Invoke ( regexResult . FileName , false ) ?? false )
1424
+ if ( regexResult . FileName . Length > 0
1425
+ && ! GetCurrentFileName ( ) . Equals ( regexResult . FileName , StringComparison . OrdinalIgnoreCase )
1426
+ && ( TryOpen ? . Invoke ( regexResult . FileName , false ) ?? false )
1407
1427
&& regexResult is not RegexFileResult )
1408
1428
{
1409
1429
SetPosition ? . Invoke ( regexResult . Index , regexResult . Length ) ;
1410
1430
}
1431
+ else if ( Config . Instance . TextSourceOn == RegexTextSource . Excel )
1432
+ {
1433
+ var searchResult = regexResult ;
1434
+ RegexExcelSheetResult excelSheetResult = null ;
1435
+
1436
+ while ( searchResult != null )
1437
+ {
1438
+ if ( searchResult is RegexExcelSheetResult )
1439
+ excelSheetResult = ( RegexExcelSheetResult ) searchResult ;
1440
+ searchResult = searchResult . Parent ;
1441
+ }
1442
+
1443
+ if ( excelSheetResult != null )
1444
+ {
1445
+ string launchExcelVbsScriptPath = Path . Combine ( Path . GetDirectoryName ( Assembly . GetExecutingAssembly ( ) . Location ) , "LaunchExcelVbsScript.vbs" ) ;
1446
+ Process . Start ( launchExcelVbsScriptPath , $ "\" { Config . Instance . TextSourceExcelPath } \" \" { excelSheetResult . SheetName } \" \" { regexResult . InfoSup } \" ") ;
1447
+ }
1448
+ }
1411
1449
1412
1450
e . Handled = true ;
1413
1451
}
0 commit comments