Spread模仿Excel打印预览之A4纸张虚线

Excel中,有一个很有用的小功能:查看打印A5纸张大小的虚线。 这样就方便用户在编辑大数据量的Excel文件时,知道那些内容是打印在一张A4纸张的,那些内容是打印到另外一张的,非常方便打印需求的用户。

发布于 2013/12/05 00:00

SpreadJS

Excel中,有一个很有用的小功能:查看打印A5纸张大小的虚线。 这样就方便用户在编辑大数据量的Excel文件时,知道那些内容是打印在一张A4纸张的,那些内容是打印到另外一张的,非常方便打印需求的用户。

Excel_Size

Spread也可以实现这个功能。

首先,换算像素单位:

A4纸张的大小为:21cm × 29.7cm, 我们选择72PPI,则换算为595 Pixels  ×   842 Pixels的单位。

Spread中的Row、Columns的单位是Pixel像素,这个是计算机显示系统的度量标配,而A4纸张打印用的是厘米cm,故需要有一个转化。 非常巧的是,有一个专门的网站用来参考:http://www.a4papersize.org/

其次, 查找Row\Column Index虚线列表

  1:             int rowCount = this.fpSpread1.ActiveSheet.RowCount;
  2:             int colCount = this.fpSpread1.ActiveSheet.ColumnCount;
  3: 
  4:             //Row Scan
  5:             float tempPixels = 0;
  6:             List<int> rowBorderList = new List<int>();
  7:             for (int i = 0; i < rowCount; i++)
  8:             {
  9:                 float pixels = this.fpSpread1.ActiveSheet.GetPreferredRowHeight(i);
 10:                 tempPixels += pixels;
 11:                 if (tempPixels >= height_pixels)
 12:                 {
 13:                     rowBorderList.Add(i);
 14:                     tempPixels = 0;
 15:                 }
 16:             }

 

在一个Spread.Sheet页面中,可能会存在n个A4纸张,故用了一个List来进行保存需要划线的个数。

 

最后,画虚线边框

  1:             //Border
  2:             FarPoint.Win.ComplexBorderSide bottomborder = new FarPoint.Win.ComplexBorderSide(Color.Black, 1, DashStyle.Dash);
  3: 
  4:  foreach (int item in rowBorderList)
  5:             {
  6:                 fpSpread1.Sheets[0].Cells[item, 0, item, colCount - 1].Border =
  7:      new FarPoint.Win.ComplexBorder(null, null, null, bottomborder);
  8: 
  9:             }

 

Row、Column都画完线后,整个工作就99%结束了,但是还存在一个缺陷:Row、Column划线交接的地方,需要补齐虚线,因为先Row再Column的方式把上面的冲掉了。

 

我们通过如下代码即可实现:

  1:  foreach (int row in rowBorderList)
  2:             {
  3:                 foreach (int col in colBorderList)
  4:                 {
  5:                     fpSpread1.Sheets[0].Cells[row, col].Border =
  6:      new FarPoint.Win.ComplexBorder(null, null, bottomborder, bottomborder);
  7:                 }
  8:             }

源码下载: 

SpreadJS | 下载试用

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

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

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

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

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