XLibur.Report.DynamicLinq 0.200.0

dotnet add package XLibur.Report.DynamicLinq --version 0.200.0
                    
NuGet\Install-Package XLibur.Report.DynamicLinq -Version 0.200.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="XLibur.Report.DynamicLinq" Version="0.200.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="XLibur.Report.DynamicLinq" Version="0.200.0" />
                    
Directory.Packages.props
<PackageReference Include="XLibur.Report.DynamicLinq" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add XLibur.Report.DynamicLinq --version 0.200.0
                    
#r "nuget: XLibur.Report.DynamicLinq, 0.200.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package XLibur.Report.DynamicLinq@0.200.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=XLibur.Report.DynamicLinq&version=0.200.0
                    
Install as a Cake Addin
#tool nuget:?package=XLibur.Report.DynamicLinq&version=0.200.0
                    
Install as a Cake Tool

XLibur.Report.DynamicLinq

ClosedXML.Report expression-syntax compatibility for XLibur.Report.

Install this only if you have templates written for ClosedXML.Report, with C# expressions inside {{ }}. XLibur.Report's own engine needs nothing from here.

using XLibur.Report;
using XLibur.Report.DynamicLinq;

using var template = new XLTemplate("LegacyReport.xlsx", new DynamicLinqExpressionEngine());
template.AddVariable("Items", sales);
template.Generate();
template.SaveAs("Report-2026.xlsx");

A template's structure — defined-name-bound ranges, the options row, <<tags>>, the &= formula prefix — means the same thing whichever engine evaluates its expressions. The expression language is the only difference, so pointing an upstream template at this engine is usually all that is needed.

Supported: property and method access (item.Name.ToUpper()), arithmetic and comparison, the conditional operator, and LINQ over collections in scope (items.Where(x => x.Qty > 10).Sum(x => x.Total)). Inside a bound range the names are item, index and items, and workbook variables are reachable by name or with an @ prefix.

Not supported: the Excel-function bridge ({{ SUM(...) }}). That is a feature of XLibur.Report's default engine; upstream syntax never had it, and templates for this engine call .NET methods instead.

Trusted templates only

Dynamic LINQ has no sandbox. An expression it parses can reach the methods and properties of any object in scope, and the library's own history includes CVE-2023-32571 — arbitrary method invocation. Do not point this engine at a template a user uploaded. For that, use XLibur.Report's default Scriban engine, which has real execution limits and no reflection escape.

Licensed under the MIT License. Portions derived from ClosedXML.Report (MIT) — see NOTICE.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.200.0 76 8/1/2026