找回密码
 立即注册

QQ登录

只需一步,快速开始

Alice
社区贡献组   /  发表于:2015-3-3 16:56:00
31#
回复 30楼不停息的翔龙的帖子

好的。我明天给你反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-4 12:06:00
32#
回复 30楼不停息的翔龙的帖子

使用C1FlexGrid的AutoSizeColumns方法按内容调整列宽。
使用C1FlexGrid.MergeManager.GetMergeRange方法获取合并单元格信息,并使用XLSheet.MergeCells.Add方法添加合并单元格到excel。

示例如附件所示,给你做参考用:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
不停息的翔龙
银牌会员   /  发表于:2015-3-4 16:07:00
33#
回复 32楼Alice的帖子

  C1FlexGrid1.ColumnHeaders.Rows.Clear()
            C1FlexGrid1.AllowMerging = AllowMerging.ColumnHeaders
            Dim ch = C1FlexGrid1.ColumnHeaders
            ch.Rows.Add(New Row())
            ch.Rows.Add(New Row())

清除标题结构,每次都自己创建 标题头 和 字段名行  ,AutoSizeColumns 为何不能根据内容自动调整格距了呢??
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-4 18:42:00
34#
回复 33楼不停息的翔龙的帖子

你的问题没有重现,请问你AutoSizeColumns方法和清楚标题结构的代码顺序是如何执行的?

我的测试步骤是,在C1FlexGrid.AllowMerging代码前添加Clear方法,然后运行代码,C1FlexGrid执行了AutoSize。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
不停息的翔龙
银牌会员   /  发表于:2015-3-5 07:55:00
35#
回复 34楼Alice的帖子

    C1FlexGrid1.ColumnHeaders.Rows.Clear()
            C1FlexGrid1.ItemsSource = The_News_Table.DefaultView

            C1FlexGrid1.AllowMerging = AllowMerging.ColumnHeaders
            Dim ch = C1FlexGrid1.ColumnHeaders
            ch.Rows.Add(New Row())
            ch.Rows.Add(New Row())
            Dim title As New List(Of String)() From { _
             "序号", _
             "部门", _
             "检测时间", _
             "受检单位名称", _
             "联系人", _
             "电话", _
             "行业类别", _
             "报告份数", _
             "核算款", _
              "应收款", _
              "实收款", _
             "是否开发票", _
              "回款日期", _
             "相关说明" _
            }

            For i As Integer = 0 To ch.Columns.Count - 1
                ch(0, i) = "收费明细表 (" + CDate(TextBox_Find1.Text).ToString("yyyy年MM月dd日") + "——" + CDate(TextBox_Find2.Text).ToString("yyyy年MM月dd日") + ")"
                ch(1, i) = title(i)
            Next

            ch.Rows(0).AllowMerging = True
            ch.Rows(0).HorizontalAlignment = System.Windows.HorizontalAlignment.Center
            C1FlexGrid1.AutoSizeColumns(0, C1FlexGrid1.Columns.Count - 1, 10, True, False)
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-5 08:51:00
36#
回复 35楼不停息的翔龙的帖子

AutoSizeColumns方法在C1FlexGrid的Loaded事件里执行才能起作用。详细请参考我Sample的代码。
  1.     void C1FlexGrid1_Loaded(object sender, RoutedEventArgs e)
  2.         {
  3.             this.C1FlexGrid1.AutoSizeColumns(0, C1FlexGrid1.Columns.Count - 1, 10, true, false);         
  4.         }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
不停息的翔龙
银牌会员   /  发表于:2015-3-5 09:39:00
37#
回复 36楼Alice的帖子

关键是它执行Loaded时,我表格还没绑定上呢!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-5 10:25:00
38#
回复 37楼不停息的翔龙的帖子

你的意思是说,你没有在初始化的时候做数据绑定,而是在C1FlexGrid加载之后之后才做的数据绑定?

如果你在初始化的时候(C1FlexGrid未Loaded)做数据绑定,不能直接调用AutoSizeColumns,需要在C1FlexGrid的Loaded事件里去调用AutoSizeColumns方法。这个事件会在C1FlexGrid数据绑定之后,C1FlexGrid加载完成后触发。
步骤方式(和提供的Demo里的方式一致):
1.c1flexgrid数据绑定。
2.调用Loaded事件,并在事件里调用AutoSizeColumns方法。

如果你是在C1FlexGrid已经Loaded之后做数据绑定,那么你在数据绑定之后可以直接调用AutoSizeColumns方法,这个方法能够执行。
步骤方式:
1.加载C1FlexGrid
2.数据绑定。
3.调用AutoSizeColumns方法。
我在程序运行起来的ButtonClick事件里测试你的代码,AutoSizeColumns可以执行。

具体根据你的需求选择这两种方式。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
不停息的翔龙
银牌会员   /  发表于:2015-3-5 12:08:00
39#
回复 38楼Alice的帖子

我发现是什么问题了,auto是生效的,只是它是随着我标题(第一行标题)的宽度了!而没有随着我具体的标题列(第二行具体小标题)的宽度!这个问题如何处理呢??
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-5 14:48:00
40#
回复 39楼不停息的翔龙的帖子

AutoSizeColumns方法根据每列的内容(包含单元格的数据)调整列区域的宽度,并不是针对某一行。
该方法语法请参考:
http://helpcentral.componentone. ... AutoSizeColumns.htm

我这里测试的结果如图,没有重现只按第一行标题调整宽度的问题:



请问我发给你的Demo也有同样的问题,还是仅仅是你改后的Demo出现问题?
如果有什么不同,请指出。或者你可以将Demo发给我,我帮你看看问题出在哪里。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部