我有一个问题的接口QT C++到Excel。在QT中,我打开一个Excel工作簿,添加3个选项卡,为这3个选项卡命名,在所有选项卡中填充值,用新名称保存工作簿(另存为)。
我的代码在Excel2010上运行得很好。但是当我运行这个程序(使用Excel2013)时,它崩溃了。有人知道为什么会这样吗?
Excel打开,显示3个选项卡(未命名),然后崩溃。似乎程序员在执行这行代码之前就停止了
QAxObject *sheet1 = sheets->querySubObject( "Item( int )", 1 );我的代码:
QAxObject* excel = new QAxObject( "Excel.Application", 0 );
excel->dynamicCall("SetVisible(bool)",true);
QAxObject *workbooks = excel->querySubObject( "Workbooks" );
QAxObject *workbook = workbooks->querySubObject("Add()");
QAxObject *sheets = workbook->querySubObject( "Worksheets" );
QAxObject *sheet1 = sheets->querySubObject( "Item( int )", 1 );
sheet1->dynamicCall("SetName(const QString&)", QVariant("Basics"));
QAxObject *sheet2 = sheets->querySubObject( "Item( int )", 2 );
sheet2->dynamicCall("SetName(const QString&)", QVariant("Name2"));
QAxObject *sheet3 = sheets->querySubObject( "Item( int )", 3 );
sheet3->dynamicCall("SetName(const QString&)", QVariant("Name3"));
//... fill excel tabs...有谁能帮帮我吗?
谢谢
斜体
发布于 2015-03-26 16:02:57
我发现了我的错误:
在Excel2010中,当您打开一个新的工作簿时,将包含3选项卡。如果您打开Excel2013,则只会显示1选项卡
因此,当(在Excel 2013中)我试图为Tab 2或Tab 3设置名称时,我得到了一个错误。
虽然很简单,但我花了两周的时间才弄明白。-(
斜体
https://stackoverflow.com/questions/29227386
复制相似问题