找回密码
 立即注册

QQ登录

只需一步,快速开始

p332718873

论坛元老

42

主题

85

帖子

8225

积分

论坛元老

积分
8225

活字格认证

p332718873
论坛元老   /  发表于:2013-5-8 20:23  /   查看:8225  /  回复:5
版主您好:

    我在做报表展示的时候 一个spread中有多个sheet  我想实现每个sheet的每一行都能自适应行高 该怎么办?

AutoFitRow()方法是针对对gcSpreadSheet的,有没有办法实现初始化时所有sheet都能自适应行高?

总不会在sheet页切换的时候做一遍activesheet的AutoFitRow吧。

麻烦给个解决方案  谢谢~

5 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-5-9 10:50:00
沙发
p332718873 你好

目前Spread WPF-Silverlight只能通过你所说的方法来对每一行进行调整,还不能对Sheet一次调整。

表格控件 Spread WPF-Silverlight 实现 Excel 自动行高列宽功能
回复 使用道具 举报
p332718873
论坛元老   /  发表于:2013-5-10 10:02:00
板凳
回复 2楼dof的帖子

版主大神,你看我这样写自适应行高对吗?
this.gcSpreadSheet1.ActiveSheetChanged += gcSpreadSheet1_ActiveSheetChanged;

private void gcSpreadSheet1_ActiveSheetChanged(object sender, EventArgs e)
        {
            for (int row = rowBegin; row < this.gcSpreadSheet1.ActiveSheet.Rows.Count; row++)
            {
                this.gcSpreadSheet1.AutoFitRow(row);
            }
        }


这样写了   切换sheet页时还是没效果啊~
求指正~
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-5-10 12:03:00
地板
首先需要确认一下gcSpreadSheet1_ActiveSheetChanged方法是否被调用,我的代码如下,可以正常调整行高,你测试一下:

  1.     public partial class MainPage : UserControl
  2.     {
  3.         public MainPage()
  4.         {
  5.             InitializeComponent();

  6.             // 添加 Ctrl + Enter 快捷键输入换行符的功能
  7.             this.gcSpreadSheet1.View.KeyMap.Remove(new GrapeCity.Windows.SpreadSheet.UI.KeyStroke(Key.Enter,ModifierKeys.Control));
  8.             this.gcSpreadSheet1.View.KeyMap.Add(new GrapeCity.Windows.SpreadSheet.UI.KeyStroke(Key.Enter,ModifierKeys.Control),SpreadActions.InputNewLine);

  9.             // 添加 Spread 编辑结束事件,并处理编辑单元格所在行的行高和所在列的列宽
  10.             //this.gcSpreadSheet1.EditEnd += new EventHandler<GrapeCity.Windows.SpreadSheet.UI.EditCellEventArgs>(gcSpreadSheet1_EditEnd);
  11.             this.gcSpreadSheet1.ActiveSheetChanged += new EventHandler(gcSpreadSheet1_ActiveSheetChanged);
  12.             #region 数据源

  13.             List<CItem> list = new List<CItem>();
  14.             list.Add(new CItem(1));
  15.             list.Add(new CItem(2));
  16.             list.Add(new CItem(3));
  17.             list.Add(new CItem(4));
  18.             list.Add(new CItem(5));
  19.             list.Add(new CItem(6));
  20.             list.Add(new CItem(7));
  21.             list.Add(new CItem(8));
  22.             list.Add(new CItem(9));
  23.             list.Add(new CItem(10));

  24.             this.gcSpreadSheet1.SheetCount = 2;
  25.             this.gcSpreadSheet1.Sheets[0].DataSource = list;
  26.             this.gcSpreadSheet1.Sheets[1].DataSource = list;
  27.             
  28.             #endregion
  29.         }

  30.         void gcSpreadSheet1_ActiveSheetChanged(object sender, EventArgs e)
  31.         {            
  32.             for (int row = 0; row < this.gcSpreadSheet1.ActiveSheet.Rows.Count; row++)
  33.             {
  34.                 this.gcSpreadSheet1.AutoFitRow(row);
  35.             }
  36.         }

  37.         void gcSpreadSheet1_EditEnd(object sender, GrapeCity.Windows.SpreadSheet.UI.EditCellEventArgs e)
  38.         {
  39.             this.gcSpreadSheet1.AutoFitRow(e.Row);
  40.             this.gcSpreadSheet1.AutoFitColumn(e.Column);
  41.         }        
  42.     }

  43.     public class CItem
  44.     {
  45.         public CItem(int row)
  46.         {

  47.             Col1 = string.Format("({0},{1})", row, 1);

  48.             Col2 = string.Format("({0},{1})", row, 2);

  49.             Col3 = string.Format("({0},{1})", row, 3);

  50.             Col4 = string.Format("({0},{1})", row, 4);

  51.             Col5 = string.Format("({0},{1})", row, 5);

  52.             Col6 = string.Format("({0},{1})", row, 6);

  53.             Col7 = string.Format("({0},{1})", row, 7);
  54.         }

  55.         public string Col1 { get; set; }

  56.         public string Col2 { get; set; }

  57.         public string Col3 { get; set; }

  58.         public string Col4 { get; set; }

  59.         public string Col5 { get; set; }

  60.         public string Col6 { get; set; }

  61.         public string Col7 { get; set; }
  62.     }
复制代码
回复 使用道具 举报
p332718873
论坛元老   /  发表于:2013-5-13 19:49:00
5#
回复 4楼dof的帖子

大神,我痛苦了一晚上,终于搞定了换行的问题:原来row column cell 上都有一个WordWrap的属性,要把这个属性设置true  ;  否则换行无效。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-5-14 09:34:00
6#
辛苦了 :l~jh:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部