Skip to content

Commit 3020365

Browse files
author
Sébastien Geiser
committed
Excel filters examples
1 parent fd13c97 commit 3020365

File tree

8 files changed

+170
-112
lines changed

8 files changed

+170
-112
lines changed

CSharpRegexTools4Npp/Resources.Designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CSharpRegexTools4Npp/app.config

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,103 +1,103 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
3-
<startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" /></startup>
3+
<startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1"/></startup>
44
<runtime>
55
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
66
<dependentAssembly>
7-
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
8-
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
7+
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
8+
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
99
</dependentAssembly>
1010
<dependentAssembly>
11-
<assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
12-
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
11+
<assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
12+
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
1313
</dependentAssembly>
1414
<dependentAssembly>
15-
<assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
16-
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
15+
<assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
16+
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
1717
</dependentAssembly>
1818
<dependentAssembly>
19-
<assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
20-
<bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
19+
<assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
20+
<bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0"/>
2121
</dependentAssembly>
2222
<dependentAssembly>
23-
<assemblyIdentity name="System.Linq" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
24-
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
23+
<assemblyIdentity name="System.Linq" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
24+
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0"/>
2525
</dependentAssembly>
2626
<dependentAssembly>
27-
<assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
28-
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
27+
<assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
28+
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
2929
</dependentAssembly>
3030
<dependentAssembly>
31-
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
32-
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
31+
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
32+
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
3333
</dependentAssembly>
3434
<dependentAssembly>
35-
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
36-
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
35+
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
36+
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0"/>
3737
</dependentAssembly>
3838
<dependentAssembly>
39-
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
40-
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
39+
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral"/>
40+
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
4141
</dependentAssembly>
4242
<dependentAssembly>
43-
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
44-
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
43+
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
44+
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0"/>
4545
</dependentAssembly>
4646
<dependentAssembly>
47-
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
48-
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
47+
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
48+
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
4949
</dependentAssembly>
5050
<dependentAssembly>
51-
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
52-
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
51+
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
52+
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0"/>
5353
</dependentAssembly>
5454
<dependentAssembly>
55-
<assemblyIdentity name="System.Diagnostics.FileVersionInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
56-
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
55+
<assemblyIdentity name="System.Diagnostics.FileVersionInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
56+
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
5757
</dependentAssembly>
5858
<dependentAssembly>
59-
<assemblyIdentity name="System.Linq.Expressions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
60-
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
59+
<assemblyIdentity name="System.Linq.Expressions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
60+
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0"/>
6161
</dependentAssembly>
6262
<dependentAssembly>
63-
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
64-
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
63+
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
64+
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
6565
</dependentAssembly>
6666
<dependentAssembly>
67-
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
68-
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
67+
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
68+
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
6969
</dependentAssembly>
7070
<dependentAssembly>
71-
<assemblyIdentity name="Microsoft.CodeAnalysis.Scripting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
72-
<bindingRedirect oldVersion="0.0.0.0-3.8.0.0" newVersion="3.8.0.0" />
71+
<assemblyIdentity name="Microsoft.CodeAnalysis.Scripting" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
72+
<bindingRedirect oldVersion="0.0.0.0-3.8.0.0" newVersion="3.8.0.0"/>
7373
</dependentAssembly>
7474
<dependentAssembly>
75-
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
76-
<bindingRedirect oldVersion="0.0.0.0-3.8.0.0" newVersion="3.8.0.0" />
75+
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
76+
<bindingRedirect oldVersion="0.0.0.0-3.8.0.0" newVersion="3.8.0.0"/>
7777
</dependentAssembly>
7878
<dependentAssembly>
79-
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp.Scripting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
80-
<bindingRedirect oldVersion="0.0.0.0-3.8.0.0" newVersion="3.8.0.0" />
79+
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp.Scripting" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
80+
<bindingRedirect oldVersion="0.0.0.0-3.8.0.0" newVersion="3.8.0.0"/>
8181
</dependentAssembly>
8282
<dependentAssembly>
83-
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
84-
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
83+
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
84+
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1"/>
8585
</dependentAssembly>
8686
<dependentAssembly>
87-
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
88-
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
87+
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
88+
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
8989
</dependentAssembly>
9090
<dependentAssembly>
91-
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
92-
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
91+
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
92+
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
9393
</dependentAssembly>
9494
<dependentAssembly>
95-
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
96-
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
95+
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
96+
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
9797
</dependentAssembly>
9898
<dependentAssembly>
99-
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
100-
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
99+
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
100+
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
101101
</dependentAssembly>
102102
</assemblyBinding>
103103
</runtime>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Collections.Generic;
2+
3+
namespace RegexDialog
4+
{
5+
public class ExcelCellFilterExample
6+
{
7+
public string Name { get; set; }
8+
public string Value { get; set; }
9+
10+
public ExcelCellFilterExample(string name, string value)
11+
{
12+
Name=name;
13+
Value=value;
14+
}
15+
16+
public static List<ExcelCellFilterExample> ExamplesList { get; set; } = new()
17+
{
18+
new("Only one cell", "C9"),
19+
new("Multiple cells","A2;C3;D1;D4;BD10"),
20+
new("Only the row 5", "5"),
21+
new("Some contiguous rows", "3:6"),
22+
new("Some discontiguous rows", "3;6;10:12"),
23+
new("Only column D", "D"),
24+
new("Some contiguous columns", "C:F"),
25+
new("Some discontiguous columns", "B;D;F:H"),
26+
new("Only the first used row", "{FR}"),
27+
new("Only the last used row", "{LR}"),
28+
new("Only the first used column", "{FC}"),
29+
new("Only the last used column", "{LC}"),
30+
new("Only the 5th row of used cells", "{FR + 4}"),
31+
new("All rows without header row", "{FR + 1}:{LR}"),
32+
new("Half of rows", "{FR}:{(LR-FR)/ 2 + FR}"),
33+
new("All used cells without FR,LF,FC and LC", "{(FCN + 1).ToLetter()}{FR + 1}:{(LCN - 1).ToLetter()}{LR - 1}"),
34+
};
35+
}
36+
}

RegexDialog/RegExToolDialog.xaml

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -662,14 +662,16 @@
662662
</Style>
663663
<HierarchicalDataTemplate DataType="{x:Type local:RegexLanguageElementGroup}"
664664
ItemsSource="{Binding Elements}">
665-
<StackPanel Background="Transparent" Orientation="Horizontal" ToolTip="{Binding Description}">
665+
<StackPanel Background="Transparent"
666+
Orientation="Horizontal"
667+
ToolTip="{Binding Description}">
666668
<Image Source="{StaticResource RegexLanguageElementsGroupPicture}" Width="16" Height="16" Margin="3,0"/>
667669
<TextBlock Text="{Binding Name}"/>
668670
<TextBlock Text="{Binding Value}" Foreground="Blue"/>
669671
</StackPanel>
670672
</HierarchicalDataTemplate>
671673
<HierarchicalDataTemplate DataType="{x:Type local:RegexLanguageElement}">
672-
<StackPanel Background="Transparent"
674+
<StackPanel Background="Transparent"
673675
Orientation="Horizontal"
674676
ToolTip="{Binding Description}"
675677
MouseDown="RegexLanguageElement_StackPanel_MouseDown"
@@ -899,10 +901,14 @@
899901
<AutoGrid Columns="Auto,*,Auto" ColumnsSharedSizeGroups="Sheet">
900902
<CheckBox Content="{Binding Name}"
901903
IsChecked="{Binding IsSelected, UpdateSourceTrigger=PropertyChanged}" />
902-
<TextBox Text="{Binding Filter}"
904+
<ComboBox Text="{Binding Filter}"
905+
ItemsSource="{Binding Source={x:Static local:ExcelCellFilterExample.ExamplesList}}"
906+
IsEditable="True"
903907
Padding="0"
908+
DisplayMemberPath="Value"
909+
Grid.IsSharedSizeScope="True"
904910
Margin="10,0,0,0">
905-
<TextBox.ToolTip>
911+
<ComboBox.ToolTip>
906912
<StackPanel>
907913
<TextBlock>To filter cells to search in the sheet</TextBlock>
908914
<TextBlock>- Separate each range or cell by ;</TextBlock>
@@ -917,8 +923,19 @@
917923
columnLetter.ToNumber() or ToNumber(columnLetter) Convert a column letter to its corresponding number<LineBreak/><Run Text=" "/>
918924
columnNumber.ToLetter() or ToLetter(columnNumber) Convert a column number to its corresponding letter</TextBlock>
919925
</StackPanel>
920-
</TextBox.ToolTip>
921-
</TextBox>
926+
</ComboBox.ToolTip>
927+
<ComboBox.ItemTemplate>
928+
<DataTemplate>
929+
<AutoGrid Columns="Auto,*"
930+
ColumnsSharedSizeGroups="Name,Value"
931+
Orientation="Horizontal"
932+
ChildMargin="0,0,10,0">
933+
<TextBlock Text="{Binding Name}" />
934+
<TextBlock Text="{Binding Value}" Foreground="Gray" />
935+
</AutoGrid>
936+
</DataTemplate>
937+
</ComboBox.ItemTemplate>
938+
</ComboBox>
922939
<Button Content="="
923940
Padding="5,0"
924941
ToolTip="Evaluate expressions of the Filter and show the result filter"

RegexDialog/RegExToolDialog.xaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -627,9 +627,9 @@ List<RegexResult> GetMatchesFor(string text, string fileName = "", int selection
627627
{
628628
var sheet = workbook.Worksheet(sheetSelection.Name);
629629

630-
RegexExcelSheetResult excelSheetResult = new RegexExcelSheetResult(regex, null, elementNb++, "", sheetSelection.Name);
630+
RegexExcelSheetResult excelSheetResult = new(regex, null, elementNb++, "", sheetSelection.Name);
631631

632-
List<RegexResult> results = new List<RegexResult>();
632+
List<RegexResult> results = new();
633633

634634
if (sheet != null)
635635
{

0 commit comments

Comments
 (0)