Ethan 发表于 2019-1-3 13:31:51

DataGrid 导出到excel 的问题

用此链接的代码,可以导出到excel   https://blog.csdn.net/longshengguoji/article/details/9664209

但对于绑定关联表字段的栏位,没有处理到,该处何调整代码?谢谢。

如: <c1:DataGridTextColumn Header="产品编号" Binding="{Binding table1.table2.Code}"/>
以上绑定关联表table2的字段Code,便导出是空。

Ethan 发表于 2019-1-3 16:11:40

感觉是以下代码某个地方需要做调整,请帮指导一下。
if (col is DataGridTemplateColumn)
                            {
                              //This is a template column... let us see the underlying dependency object
                              DependencyObject objDO = (col as DataGridTemplateColumn).CellTemplate.LoadContent();
                              FrameworkElement oFE = (FrameworkElement)objDO;
                              FieldInfo oFI = oFE.GetType().GetField("TextProperty");
                              if (oFI != null)
                              {
                                    if (oFI.GetValue(null) != null)
                                    {
                                        if (oFE.GetBindingExpression((DependencyProperty)oFI.GetValue(null)) != null)
                                          objBinding = oFE.GetBindingExpression((DependencyProperty)oFI.GetValue(null)).ParentBinding;
                                    }
                              }
                            }
                            if (objBinding != null)
                            {
                              if (objBinding.Path.Path != "")
                              {
                                    PropertyInfo pi = data.GetType().GetProperty(objBinding.Path.Path);
                                    if (pi != null) strValue = pi.GetValue(data, null).ToString();
                              }

JeffryLI 发表于 2019-1-3 17:50:45

请提供一个demo,我这边测试一下。

Ethan 发表于 2019-1-3 18:09:13

https://blog.csdn.net/longshengguoji/article/details/9664209
这个链接就是Demo

JeffryLI 发表于 2019-1-7 12:19:04

好的,我看下
页: [1]
查看完整版本: DataGrid 导出到excel 的问题