GridExportCustomizeCellEventArgs.Value Property
Specifies the value of the cell currently being processed.
Namespace: DevExpress.Blazor
Assembly: DevExpress.Blazor.v24.1.dll
NuGet Package: DevExpress.Blazor
Declaration
public object Value { get; set; }
Property Value
Type | Description |
---|---|
Object | The cell value. |
Remarks
The CustomizeCell action allows you to customize a cell in the exported file. Use the Value
property to get or set the value of the cell, currently being processed.
Set the Handled property to true
to apply the changes made in the action handler to the cell.
@using System.Xml;
<DxGrid @ref="Grid" Data="@Data" >
<Columns>
<DxGridDataColumn FieldName="OrderDate" />
<DxGridDataColumn FieldName="CompanyName" />
<DxGridDataColumn FieldName="Country" />
<DxGridDataColumn FieldName="UnitPrice" DisplayFormat="c" />
<DxGridDataColumn FieldName="Quantity" />
<DxGridDataColumn FieldName="Total" UnboundType="GridUnboundColumnType.Decimal"
DisplayFormat="c" UnboundExpression="[UnitPrice]*[Quantity]" />
</Columns>
</DxGrid>
<DxButton Text="Export in Euro" Click="ExportXlsx_Click" />
@code {
object Data { get; set; }
IGrid Grid { get; set; }
protected override async Task OnInitializedAsync() {
var invoices = await NwindDataService.GetInvoicesAsync();
var customers = await NwindDataService.GetCustomersAsync();
Data = invoices.OrderBy(i => i.OrderDate).Join(customers, i => i.CustomerId, c => c.CustomerId, (i, c) => {
return new {
OrderDate = i.OrderDate,
CompanyName = c.CompanyName,
City = i.City,
Region = i.Region,
Country = i.Country,
UnitPrice = i.UnitPrice,
Quantity = i.Quantity
};
});
}
decimal GetRate() {
string daylyRate = "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml";
decimal rate = 0;
XmlTextReader reader = new XmlTextReader(daylyRate);
while (reader.Read()) {
if (reader.NodeType == XmlNodeType.Element && reader.MoveToAttribute("currency")) {
if (reader.Value == "USD") {
reader.MoveToAttribute("rate");
rate = Convert.ToDecimal(reader.Value);
break;
}
}
}
return rate;
}
async Task ExportXlsx_Click() {
decimal currentRate = GetRate();
var options = new GridXlExportOptions();
options.DocumentCulture = new CultureInfo("fr-FR");
options.SheetName = "(Rate = " + currentRate + ")";
options.CustomizeCell = e => {
if (e.AreaType == DevExpress.Export.SheetAreaType.DataArea && (e.ColumnFieldName == "Total" || e.ColumnFieldName == "UnitPrice")) {
e.Value = (decimal)e.Value / currentRate;
// Highlight data cells where Total > 1000€
if (e.ColumnFieldName == "Total" && (decimal)e.Value > 1000) {
e.Formatting.BackColor = System.Drawing.Color.LightGreen;
}
e.Handled = true;
}
};
await Grid.ExportToXlsxAsync("ExportResult", options);
}
}
See Also