开发工作中有一个需求是使用金格控件对excle文档进行自动填充,API如下:
WebOffice.WebObject.Application.ActiveCell.SpecialCells(11).Select(); //选中当前单元格中最后一行列单元格
但是这条语句在WPS下和office下的执行效果却不同,在WPS下获取的是最后一个有效单元格。在office中获得的是最后一行坐标为256列的格子(列数为默认最大)。
如果使用
WebOffice.WebObject.Application.ActiveCell.Row; //获取最后一行数值,该数值就相当于有效内容总行数
在WPS 和office获取的值相同,
WebOffice.WebObject.Application.ActiveCell.Column; //获取最后一列数值,该数值就相当于有效内容总列数
在WPS下正常输出有效地列数,office中输出256
在网上查资料,使用如下函数问题解决
ActiveSheet.Cells(row, 1).
End
(-4161).Column//从最后一列由右至左的查找有效地列的位置
下图为SpecialCells()函数中对应的常数代表的意义