vsto设置excel中无论多少列显示到一个屏里

 

 vsto实现excel指定非连续列一屏展示,用户不通过拖动横向滚动查看隐藏的区域

一屏展示的列中列数据很对要根据屏幕的宽度比列调整各列的宽度

 

 

using Excel = Microsoft.Office.Interop.Excel;

Excel.Application excelApp = Globals.ThisAddIn.Application;
Excel.Worksheet activeWorksheet = excelApp.ActiveSheet;

// 获取当前窗口的宽度
int windowWidth = excelApp.ActiveWindow.Width;

// 获取一屏展示的所有列的总宽度
Excel.Range visibleRange = excelApp.ActiveWindow.VisibleRange;
double totalWidth = 0;
foreach (Excel.Range column in visibleRange.Columns)
{
    totalWidth += column.Width;
}

// 计算每列的新宽度
for (int i = 1; i <= visibleRange.Columns.Count; i++)
{
    Excel.Range column = visibleRange.Columns[i];
    double originalWidth = column.Width;
    double newWidth = (originalWidth / totalWidth) * windowWidth;
    column.ColumnWidth = newWidth;
}

根据比列乘以列宽,列没有铺满,小数精度导致

但是Range.ColumnWidth属性double类型只保留2位小数,永远不准 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值