当前位置: 代码迷 >> QT开发 >> 使用Qt怎么在Excel的最后插入一个sheet页,注意是最后
  详细解决方案

使用Qt怎么在Excel的最后插入一个sheet页,注意是最后

热度:350   发布时间:2016-04-25 05:11:59.0
使用Qt如何在Excel的最后插入一个sheet页,注意是最后
昨天使用
C/C++ code
QAxObject* newSheet = worksheets->querySubObject("Add()"); 

成功创建了一个sheet页,但默认是创建在第一个的,我想把newSheet创建在最后一个 
试了Move方法好像不起作用: 
C/C++ code
QAxObject* newsheet = worksheets->querySubObject("Add()"); QAxObject *before = worksheets->querySubObject("Item(QVariant)", "Sheet1"); QAxObject *after = worksheets->querySubObject("Item(QVariant)", "Sheet2"); newsheet->dynamicCall("Move(QVariant, QVariant)", before->asVariant(), after->asVariant()); 


网上查了下好像Add()方法就有位置可设定,vba中是Add after := worksheets(1) 像这样的,不知Qt中该如何操作? 
还有Add()都有哪些变量啊?网上查了没查到啊!期待高手帮忙

------解决方案--------------------
楼上给的方法可以插入到最后一列吗?没记错的话,应该是插入到最后一列的前面。
我的方法费劲点,先插入到最后一列的前面,然后将最后一列移到插入那列的前面。
C/C++ code
        QAxObject * last = excelSheets->querySubObject("Item(int)", count);        excelSheets->dynamicCall("Add(QVariant)", last->asVariant());        QAxObject * newSheet = excelSheets->querySubObject("Item(int)", count);        last->dynamicCall("Move(QVariant)", newSheet->asVariant());
------解决方案--------------------
额,没看到说是最后一列,我试了下代码,插入不到最后一列,在VBA中说明如下
Remarks
If Before and After are both omitted, the new sheet is inserted before the active sheet.
所以只能插入到原来最后一列的前面,不好意思哈,没具体去测试。
要想插入到最后一列,我个人认为只能先插入后,在移动到最后一列,也就是楼主使用的方法
在VBAX11的文档中,Before,和After不存在默认值,在VB中知道怎么来用after,但是在Qt下我还真不
了解,也google了下,没有收获,╮(╯▽╰)╭
要是没有VB中没有move这个函数,那还真不知道咋办。。。
  相关解决方案