I work on asp.net core 7 blazor server side . I face Issue I can't export to excel column picking true
on my scenario I have radzen data grid have 15 columns i need only to picking 3 columns at runtime then export to excel .
my issue when export to excel after picking 3 columns it correct must be export 3 columns
but it make wrong it export all columns on ridzen data grid
so How to export ridzen data grid columns picking
so How to change my code to export only 3 column picking
private async Task ExportToExcel()
{
var visibleColumns = myDataGrid.ColumnsCollection.Where(c => c.Pickable==true);
if (string.IsNullOrEmpty(myDataGrid.Query.Filter))
{
ExceldatabaseData = databaseData.Select(p => new CopyExcelDatabaseClass
{
DBID = p.dbid,
DBName = p.databaseName,
ServerID = p.serverID,
ServerName = p.serverName,
Severity = p.serverity,
BackupProcedure = p.backUpProcedure,
Remarks = p.remarks,
OwnerFileNo = p.ownerfilenumber,
OwnerFileName = p.ownerfilename,
IsActive = p.isActive
}).ToList();
}
else
{
var query = myDataGrid.Query.Filter;
var filteredList = databaseData.AsQueryable().Where(query).ToList();
ExceldatabaseData = filteredList.Select(p => new CopyExcelDatabaseClass
{
DBID = p.dbid,
DBName = p.databaseName,
ServerID = p.serverID,
ServerName = p.serverName,
Severity = p.serverity,
BackupProcedure = p.backUpProcedure,
Remarks = p.remarks,
OwnerFileNo = p.ownerfilenumber,
OwnerFileName = p.ownerfilename,
IsActive = p.isActive
}).ToList();
}
ExcelPackage.LicenseContext = LicenseContext.Commercial;
var stream = new MemoryStream();
using (var package = new ExcelPackage(stream))
{
var worksheet = package.Workbook.Worksheets.Add("DatabaseList");
worksheet.Cells.LoadFromCollection(ExceldatabaseData, true);
package.Save();
}
var buffer = stream.ToArray();
var fileName = $"Database_{DateTime.Now:yyyyMMddHHmmss}.xlsx";
await JS.InvokeAsync

ahmed salahPosted Aug 4, 2023, 6:54 PM
i try this solution and not solve my issue according to debug above
so can you please help me
ahmed salahPosted Aug 2, 2023, 10:01 AM
can you help me please by answer question if possible
ahmed salahPosted Jul 30, 2023, 8:28 AM
I appreciate you support much but issue not solved yet
what i do as below
1- I select 3 columns to be picked at run time DataBaseName and ServerName and Serverity
2-when export to excel picked columns display 11 columns why that I don't know
var pickedColumns = myDataGrid.ColumnsCollection
.Where(c => c.Pickable && c.Visible) // Include only visible columns
.Select(c => c.Property);
so please How to get only 3 column only picked
Cr BhargaviPosted Jul 30, 2023, 5:17 AM
Please modify the code as below and try running. To export only the three picked columns from the Radzen DataGrid to Excel, you can modify your
ExportToExcelmethod. Please make sure that CopyExcelDatabaseClass has the exact property name and class nameprivate async Task ExportToExcel()
{
// Get the columns that are marked as "Pickable" (selected by the user)
var pickedColumns = myDataGrid.ColumnsCollection
.Where(c => c.Pickable && c.Visible) // Include only visible columns
.Select(c => c.Field); // Get the field names of the picked columns
if (string.IsNullOrEmpty(myDataGrid.Query.Filter))
{
ExceldatabaseData = databaseData.Select(p => new CopyExcelDatabaseClass
{
// Include only the properties of the picked columns
DBID = p.dbid,
DBName = p.databaseName,
ServerID = p.serverID
}).ToList();
}
else
{
var query = myDataGrid.Query.Filter;
var filteredList = databaseData.AsQueryable().Where(query).ToList();
ExceldatabaseData = filteredList.Select(p => new CopyExcelDatabaseClass
{
// Include only the properties of the picked columns
DBID = p.dbid,
DBName = p.databaseName,
ServerID = p.serverID
}).ToList();
}
ExcelPackage.LicenseContext = LicenseContext.Commercial;
var stream = new MemoryStream();
using (var package = new ExcelPackage(stream))
{
var worksheet = package.Workbook.Worksheets.Add("DatabaseList");
// Load only the columns that were picked by the user
var properties = typeof(CopyExcelDatabaseClass).GetProperties();
int columnIndex = 1;
foreach (var columnName in pickedColumns)
{
var property = properties.FirstOrDefault(p => p.Name == columnName);
if (property != null)
{
worksheet.Cells[1, columnIndex].Value = property.Name;
for (int i = 0; i < ExceldatabaseData.Count; i++)
{
var cellValue = property.GetValue(ExceldatabaseData[i]);
worksheet.Cells[i + 2, columnIndex].Value = cellValue;
}
columnIndex++;
}
}
package.Save();
}
var buffer = stream.ToArray();
var fileName = $"Database_{DateTime.Now:yyyyMMddHHmmss}.xlsx";
await JS.InvokeAsync
ahmed salahPosted Jul 30, 2023, 4:53 AM
thanks for support
these two lines get pickable when page load but after that it not detect column picked or selected from drop down list at runtime
var selectedColumns = myDataGrid.ColumnsCollection.Where(c => c.Pickable == true).ToList();
var selectedColumnNames = selectedColumns.Select(c => c.Property).ToList();
as image below it give me 15 column pickable but correct must be 3 column because i select databasename and serverame and serverity to image exist on first post thread
ahmed salahPosted Jul 29, 2023, 9:57 AM
thanks for support
it not working
it give pickable true when page load but after that it not give what is column selected from drop down option at run time
Tahir AnsariPosted Jul 29, 2023, 7:57 AM
Try the below code: