Excel合并单元格基础注意事项(VSTO 2005)

  • Range.get_Offset(rows,cols), Range若为合并单元格,那么get_Offset并不如我们想像的以Range的左上角单元格为基点计算,比如,如果Range为A7:B7合并,则Range.get_Offset(1,0)为正常为A8,而Range.get_Offset(1,1)为C8,并不是B8。因此原点单元格最好使用非合并单元格。
  • 合并单元格的AutoFit功能无法正确计算行高,独立单元格则正常。网上有一段VBA的代码可以勉强做单行合并单元格的AutoFit,但它还不能照顾EntireRow,因此只能扩展行高,而不敢收缩,既然如此,我倒是建议先选择将要合并的单元格中的某个,将其宽度扩展到合并以后的宽度,填充内容后再将其宽度收缩到原值,最后再Merge:
    None.gif double  w0  =  ( double )originRng.ColumnWidth;
    None.gif
    double  w1  =  ( double )originRng.Next.ColumnWidth;
    None.gifrng 
    =  originRng.get_Offset(r,  0 );
    None.gifrng.WrapText 
    =   true ;
    None.gifrng.Value2 
    =   " line1\r\nline2\r\nlinedot.gif " ;
    None.gifrng 
    =  worksheet1.get_Range(originRng.get_Offset(r,  0 ), originRng.get_Offset(r,  1 ));
    None.gifrng.Merge(
    false );
    None.giforiginRng.ColumnWidth 
    =  w0;
    None.gif

    注意,以上代码运行后不能再使用“最适合的行高”功能,相应的在程序中也就是不能使用AutoFit()方法,否则行高又将混乱。

转载于:https://www.cnblogs.com/dotAge/archive/2006/08/24/484516.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值