求教:vc纵向合并excel单元格,急盼

lingxiasandu 2010-07-08 11:38:20
各位好:
我在程序里需要合并部分单元格以实现美观。横向的几个单元格可以合并,但是纵向的不行,手头么有MSDN,不知道如何实现纵向合并。这是横向合并:
Range myrange1=sheet.GetRange(COleVariant("A7"),COleVariant("A10"));
myrange1.SetHorizontalAlignment(COleVariant((short)1));
myrange1.Merge(COleVariant((short)1));
纵向合并如何实现呢? Merge的参数到底是什么意思呢?

谢谢各位!!
...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingxiasandu 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bluevox3000 的回复:]
其实把merge的值变成0就可以了。
[/Quote]
帖子一年了 还能被你看到, 不容易啊,谢谢你的回复,下次试试。
bluevox3000 2011-06-07
  • 打赏
  • 举报
回复
其实把merge的值变成0就可以了。
lingxiasandu 2010-07-09
  • 打赏
  • 举报
回复
最后还是自己看到了一篇2004年的帖子解决了。
COleVariant vFalse((long)0),vTrue((long)1);
range.SetHorizontalAlignment(COleVariant((long)-4108));
range.Merge(vFalse);
这样才能纵向合并.希望对大家有帮助。
lingxiasandu 2010-07-08
  • 打赏
  • 举报
回复
回复 purple2727:
我目的是将现在的A7里面的内容占用A7 A8 A9这三个纵向的单元格,不是判断A7是不是合并单元格。改怎么合并A7 A8 A9 呢?
谢谢
lingxiasandu 2010-07-08
  • 打赏
  • 举报
回复
不好意思,题目里代码写错了。横向单元格合并A7:E7可以实现。
Range myrange1=sheet.GetRange(COleVariant("A7"),COleVariant("E7"));
但是,纵向的A7:A10再利用这个函数就没实现:
Range myrange1=sheet.GetRange(COleVariant("A7"),COleVariant("A10"));
请各位赐教!
梧桐126 2010-07-08
  • 打赏
  • 举报
回复
//合并单元格的处理
//包括判断第一个单元格是否为合并单元格,以及将第一个单元格进行合并
Range unionRange;
range.AttachDispatch(sheet.GetCells());
unionRange.AttachDispatch(range.GetItem (COleVariant((long)1),COleVariant((long)1)).pdispVal );

vResult=unionRange.GetMergeCells();
if(vResult.boolVal==-1) //是合并的单元格
{
//合并单元格的行数
range.AttachDispatch (unionRange.GetRows ());
long iUnionRowNum=range.GetCount ();

//合并单元格的列数
range.AttachDispatch (unionRange.GetColumns ());
long iUnionColumnNum=range.GetCount ();

//合并区域的起始行,列
long iUnionStartRow=unionRange.GetRow(); //起始行,从1开始
long iUnionStartCol=unionRange.GetColumn(); //起始列,从1开始

}
else if(vResult.boolVal==0)
{//不是合并的单元格}

//将第一个单元格合并成2行,3列
range.AttachDispatch(sheet.GetCells());
unionRange.AttachDispatch(range.GetItem (COleVariant((long)1),COleVariant((long)1)).pdispVal );
unionRange.AttachDispatch(unionRange.GetResize(COleVariant((long)2),COleVariant((long)3)));
unionRange.Merge(COleVariant((long)0)); //合并单元格
hongya6088 2010-07-08
  • 打赏
  • 举报
回复

Range myallrange=workSheet.GetRange(COleVariant( "A1 "),COleVariant( "E1 "));
myallrange.SetHorizontalAlignment(COleVariant((short)3));
myallrange.Merge(COleVariant((short)1));

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧