Spread for WinForms:根据 Spread 尺寸自适应行高列宽

Spread COM 的 AutoSize 属性用于设置行列充满Spread的表格控件。Spread WinForms版本中没有相应的接口,但是我们可以通过自定义方法来实现这个功能,本篇文章中将阐述如何实现这个功能。

发布于 2014/11/14 00:00

SpreadJS

Spread COM 的 AutoSize 属性用于设置行列充满Spread的表格控件。Spread WinForms版本中没有相应的接口,但是我们可以通过自定义方法来实现这个功能,本篇文章中将阐述如何实现这个功能。

 

SpreadGrayArea

 

我们需要做的就是按照元素分割 Spread 表格控件,去除固定部分如滚动条、行列头,剩余部分平均分配给行列。

  • 计算行列头以及滚动条尺寸
  • 平均分配给 Spread 行列

代码如下:

int spreadW = this.fpSpread1.Width;
            int spreadH = this.fpSpread1.Height;
 
            //垂直滚动条宽度
            int vScrollBar = SystemInformation.VerticalScrollBarWidth;
            //水平滚动条高度
            int hScrollBar = SystemInformation.HorizontalScrollBarHeight;
 
            //列头高度
            float columnHeaderH = 0;
            for (int i = 0; i < this.fpSpread1.ActiveSheet.ColumnHeader.RowCount; i++)
            {
                columnHeaderH += this.fpSpread1.ActiveSheet.ColumnHeader.Rows[i].Height+1;
            }
 
            //行头宽度
            float rowHeaderW = 0;
            for (int i = 0; i < this.fpSpread1.ActiveSheet.RowHeader.ColumnCount; i++)
            {
                rowHeaderW += this.fpSpread1.ActiveSheet.RowHeader.Columns[i].Width+1;
            }
 
            //剩余宽度和高度
            int leftWidth = spreadW - vScrollBar - Convert.ToInt32(rowHeaderW);
            int leftHeight = spreadH - hScrollBar - Convert.ToInt32(columnHeaderH);
 
            //计算并设置平均列宽
            int averageColWidth = leftWidth / this.fpSpread1.ActiveSheet.ColumnCount;
            for (int i = 0; i < this.fpSpread1.ActiveSheet.ColumnCount; i++)
            {
                this.fpSpread1.ActiveSheet.Columns[i].Width = averageColWidth;
            }
 
            //计算并设置平均行高
            int averageRowHeight = leftHeight/ this.fpSpread1.ActiveSheet.RowCount;
            for (int i = 0; i < this.fpSpread1.ActiveSheet.RowCount; i++)
            {
                this.fpSpread1.ActiveSheet.Rows[i].Height = averageRowHeight;
            }

 

Demo1 

Demo 下载:

VS2013 + C# + .NET 4.0

SpreadJS | 下载试用

纯前端表格控件SpreadJS,兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,备受华为、苏宁易购、天弘基金等行业龙头企业的青睐,并被中国软件行业协会认定为“中国优秀软件产品”。SpreadJS 可为用户提供类 Excel 的功能,满足表格文档协同编辑、 数据填报、 类 Excel 报表设计等业务场景需求,极大的降低企业研发成本和项目交付风险。

如下资源列表,可以为您评估产品提供帮助:

相关产品
推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态