查看完整版本: [-- QAxObject 操作Word文档表格,合并单元格 --]

QTCN开发网 -> Qt基础编程 -> QAxObject 操作Word文档表格,合并单元格 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

loveabcc 2016-12-20 09:43

QAxObject 操作Word文档表格,合并单元格

谁有这方面的经验,指教下,
取出Range,总是失败
错误是 QAxBase::Error calling IDispatch member Range:Unknown error


loveabcc 2016-12-20 10:03
自顶一下,有知道这方面知识的吗,比如说 VBA对应QT的函数,应该怎么找到对应的.

圣域天子 2016-12-20 10:58
我也卡在这个问题上没解决过~~~
楼主对Word操作的其它接口都搞定了吗?
开个源吧~~~学习学习
取 UsedRange 的一段代码,不知对楼主是否有用:
  1. void TcMSWord::getUsedRange(int *topLeftRow, int *topLeftColumn, int *bottomRightRow, int *bottomRightColumn)
    {
        QAxObject* range = m_document->querySubObject("Range");
        *topLeftRow = range->property("Row").toInt();
        *topLeftColumn = range->property("Column").toInt();

        QAxObject *rows = range->querySubObject("Rows");
        *bottomRightRow = *topLeftRow + rows->property("Count").toInt() - 1;

        QAxObject *columns = range->querySubObject("Columns");
        *bottomRightColumn = *topLeftColumn + columns->property("Count").toInt() - 1;
    }



loveabcc 2016-12-20 12:22
圣域天子:我也卡在这个问题上没解决过~~~
楼主对Word操作的其它接口都搞定了吗?
开个源吧~~~学习学习
取 UsedRange 的一段代码,不知对楼主是否有用:
void TcMSWord::getUsedRange(int *topLeftRow, int *topLeftColumn, int *bottomRightRow, int *bottomRightColumn)
....... (2016-12-20 10:58) 

加个QQ吧495259090,基本属于刚开始弄,CSDN上找了一个代码。

loveabcc 2016-12-21 10:44
圣域天子:我也卡在这个问题上没解决过~~~
楼主对Word操作的其它接口都搞定了吗?
开个源吧~~~学习学习
取 UsedRange 的一段代码,不知对楼主是否有用:
void TcMSWord::getUsedRange(int *topLeftRow, int *topLeftColumn, int *bottomRightRow, int *bottomRightColumn)
....... (2016-12-20 10:58) 

已经解决合并单元格
例子 合并 第一行 1-9单元格
QAxObject* cell11 = table->querySubObject(Cell(1,2));
QAxObject* cell19 = table-queryObject(cell(1,9));
cell11->dynamicCall("Merge(QAxObject*)", cell12->asVariant);

https://msdn.microsoft.com/en-us/library/aa212374(v=office.11).aspx 这里面有 VBA方法

圣域天子 2016-12-22 08:56
loveabcc:已经解决合并单元格
例子 合并 第一行 1-9单元格
QAxObject* cell11 = table->querySubObject(Cell(1,2));
QAxObject* cell19 = table-queryObject(cell(1,9));
....... (2016-12-21 10:44) 

cell(..)函数代码能提供一下吗?

lirus1234 2017-07-21 23:51
loveabcc:已经解决合并单元格
例子 合并 第一行 1-9单元格
QAxObject* cell11 = table->querySubObject(Cell(1,2));
QAxObject* cell19 = table-queryObject(cell(1,9));
....... (2016-12-21 10:44) 

你好  看你这个例子有点乱  

QAxObject* cell11 = table->querySubObject(Cell(1,2));
QAxObject* cell19 = table-queryObject(cell(1,9));

这两句的意思是找到需要合并的单元格的位置

cell11->dynamicCall("Merge(QAxObject*)", cell12->asVariant);

最后一句的cell12又是什么?

方便的话顺便将Cell(int,int)这个方法一起贴出来一下

万分感谢


查看完整版本: [-- QAxObject 操作Word文档表格,合并单元格 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled