Excel export for GridForeignColumn

Hi, I need to export to Excel the content of a DataGrid customizing the columns I'm exporting.

So I'm using the ExportProperties.Columns to define the correct list of columns like this: 

        privateasyncTaskExportGrid(Microsoft.AspNetCore.Components.Web.MouseEventArgs args)

        {
            ExcelExportPropertiesExportProperties=newExcelExportProperties();
            List<GridColumn>ExportColumns=newList<GridColumn>();
            ExportColumns.Add(newGridColumn(){Field="ONE_KEY_ID",HeaderText="ONE KEY",Width="80"});
            ExportColumns.Add(newGridColumn(){Field="COD_AMM_DOCS",HeaderText="Cod_Amm",Width="80"});
            ExportColumns.Add(newGridColumn(){Field="nominativo",HeaderText="Nominativo",AutoFit=true});
            if(!showPrivacyBtn)
            {
                ExportColumns.Add(newGridColumn(){Field="Spec1",HeaderText="Specializzazione",AutoFit=true});
                ExportColumns.Add(newGridColumn(){Field="LuogoLav",HeaderText="Luogo Lavoro",AutoFit=true});
                ExportColumns.Add(newGridColumn(){Field="ComuneLav",HeaderText="Comune Lavoro",AutoFit=true});
                ExportColumns.Add(newGridColumn(){Field="ProvLav",HeaderText="Prov Lavoro",AutoFit=true});
            }
            else
            {
                ExportColumns.Add(newGridColumn(){Field="md_Spec1",HeaderText="Specializzazione",AutoFit=true});
                ExportColumns.Add(newGridColumn(){Field="md_LuogoLav",HeaderText="Luogo Lavoro",AutoFit=true});
                ExportColumns.Add(newGridColumn(){Field="md_ComuneLav",HeaderText="Comune Lavoro",AutoFit=true});
                ExportColumns.Add(newGridColumn(){Field="md_ProvLav",HeaderText="Prov Lavoro",AutoFit=true});
            }
            ExportColumns.Add(newGridColumn(){Field="_cell",HeaderText="Cellulare",AutoFit=true});
            ExportColumns.Add(newGridColumn(){Field="_email",HeaderText="Email",AutoFit=true});
            ExportColumns.Add(newGridColumn(){Field="appointment",HeaderText="Appuntamento",AutoFit=true,Format="dd/MM/yyyy HH:mm"});
            if((suppIT | ricercatore))ExportColumns.Add(newGridColumn(){Field="Intervistatore",HeaderText="Intervistatore",AutoFit=true});
            if((showIntType &!suppIT))ExportColumns.Add(newGridForeignColumn<EnumItem>(){Field= nameof(Reperito.intType),ForeignDataSource= intType,ForeignKeyField="EID",ForeignKeyValue="descr",HeaderText= loc.Localize("Reper.IntType").ToString(),AutoFit=true});
            ExportColumns.Add(newGridColumn(){Field="stato",HeaderText="Stato",Width="50"});
            if(showPrivacyBtn)
            {
                ExportColumns.Add(newGridColumn(){Field="Trasparenza",HeaderText="Trasparenza",AutoFit=true,Type=ColumnType.Boolean});
                ExportColumns.Add(newGridColumn(){Field="Privacy_info",HeaderText="Privacy Info",AutoFit=true,Type=ColumnType.Boolean});
                ExportColumns.Add(newGridColumn(){Field="Privacy_AudioVideo",HeaderText="Privacy Audio Video",AutoFit=true,Type=ColumnType.Boolean});
                ExportColumns.Add(newGridColumn(){Field="Privacy_Conf",HeaderText="Privacy Conformità",AutoFit=true,Type=ColumnType.Boolean});
            }
            ExportProperties.Columns=ExportColumns;
            ExportProperties.FileName= $"Reperiti_{currJob.Text}_{selGruppo.groupName}.xlsx";
            awaitDBGrid.ExportToExcelAsync(ExportProperties);
        }



The foreignColumn defined for intType, which works properly in the datagrid on the page, is NULL in the exported file.

This is how I defined it in datagrid on the razor page:

<GridForeignColumn Visible=@(showIntType & !suppIT) Field=@nameof(Reperito.intType) ForeignDataSource="intType" ForeignKeyField="EID" ForeignKeyValue="descr" HeaderText="@loc.Localize("Reper.IntType").ToString()" AutoFit="true"></GridForeignColumn>

Datasource for the column is:

            private List<EnumItem> intType 
            intType.Add(new EnumItem() { EID = 1, descr = "tel" });
            intType.Add(new EnumItem() { EID = 2, descr = "web" });


3 Replies

PS Prathap Senthil Syncfusion Team May 19, 2025 01:49 PM UTC

Hi Michele,

We have confirmed that this an issue and logged a defect report titled  “Foreign key column exporting as null in excel when using ExcelExportProperties.Columns” This fix will be included in our weekly patch release, which is expected to be rolled out on June 3rd , 2025. You can now track the status of your request, review the proposed resolution timeline, and contact us for any further inquiries through this link.    
 
https://www.syncfusion.com/feedback/67699/foreign-key-column-exporting-as-null-in-excel-when-using-excelexportproperties

Disclaimer: “Inclusion of this solution in the weekly release may change due to other factors including but not limited to QA checks and works reprioritization”

We will get back to you once the release is rolled out. Thanks for your understanding.


Regards,
Prathap S



MI Michele May 19, 2025 01:56 PM UTC

I have to be paid as beta tester for your applications. This is the second issue I address you in a few weeks :)


Thanks for checking it, I'm not in a great dash because I already decoded those fields in the class and I'm exporting the results of the newly created decoded properties.

Regards


Michele



PS Prathap Senthil Syncfusion Team June 3, 2025 08:10 AM UTC

Thanks for your patience,

We are glad to announce that, we have included the fix for the issue  “Foreign key column exporting as null in excel when using ExcelExportProperties.Columns” in our 29.2.8 release.  So please upgrade to our latest version of Syncfusion NuGet package to resolve the reported issue. Please find the NuGet package for the latest fixes and features below.


NuGet : https://www.nuget.org/packages/Syncfusion.Blazor.Grid

Root cause : If Column.ColumnData is null means Column.GetForeignData() must be used, it was missing.

Action Taken:  Now added the Column.GetForeignData() and assigned foreignValue to the necessary variable.


Loader.
Up arrow icon