首页 新闻 会员 周边 捐助

有哪位大哥大姐用过componentone公司的 C1 DataGrid DataGridTemplateColumn 的导出数据到Excel功能?

0
悬赏园豆:5 [已解决问题] 解决于 2012-07-16 10:12

如题,官方示例只适用将DataGrid的 DataGridTextColumn 列导出到Excel。但是DataGrid中假设包含了自定义模板列如

<c1:DataGridTemplateColumn Header="用户" Width="*">
      <c1:DataGridTemplateColumn.CellTemplate>
          <DataTemplate>
              <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
                    <HyperlinkButton x:Name="hpbtn_ShowUserInfo"    Click="hpbtn_ShowUserInfo_Click" Content="{Binding Name}" Margin="0" />
              </StackPanel>
           </DataTemplate>
       </c1:DataGridTemplateColumn.CellTemplate>
</c1:DataGridTemplateColumn>

那么导出后,这列就为空白。

icyme的主页 icyme | 初学一级 | 园豆:77
提问于:2012-07-15 20:10
< >
分享
最佳答案
0

这个 需要些一个 方法,导出dataset 数据。要设置 导出的列。需要 自己写,只不过 用 c1中的类。

View Code
 public static void GenerateExcelFile(System.Data.DataTable dataTable, string FileName)
    {
        C1.C1Excel.C1XLBook xlsBook = new C1.C1Excel.C1XLBook();
        C1.C1Excel.XLSheet xlsSheet = xlsBook.Sheets[0];
        C1.C1Excel.XLStyle xlsStyle = new C1.C1Excel.XLStyle(xlsBook);
        // Header
        foreach (System.Data.DataColumn col in dataTable.Columns)
        {
            xlsSheet[0, col.Ordinal].Value = col.Caption;
            xlsStyle.BackColor = System.Drawing.Color.LightGray;
            xlsSheet[0, col.Ordinal].Style = xlsStyle;
        }

        // Context
        int y = 1;
        foreach (System.Data.DataRow row in dataTable.Rows)
        {
            int x = 0;
            foreach (System.Data.DataColumn col in dataTable.Columns)
            {
                xlsSheet[y, x].Value = row[col];
                x++;
            }
            y++;
        }
        AutoSizeExcelColumns(xlsSheet);
        xlsBook.Save(FileName);
        //System.Diagnostics.Process.Start(FileName);
    }

 

收获园豆:5
無限遐想 | 老鸟四级 |园豆:3740 | 2012-07-16 10:06

谢谢园友,思路就是园友你说的这种了,需要自己重新构造一个新的C1DataGrid,然后将数据源赋给这个新的C1DataGrid。最后再导出,就成功了。

icyme | 园豆:77 (初学一级) | 2012-07-16 10:12
其他回答(1)
0

感谢您对 ComponentOne 的关注,最新版本为 2012V2 ,已经支持“中文和资源汉化”,更多信息请参考-ComponentOne Ultimate 2012 v2 新特性:http://www.cnblogs.com/C1SupportTeam/archive/2012/09/05/2671828.html

葡萄城开发工具 | 园豆:202 (菜鸟二级) | 2012-12-06 12:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册