Sub SSDS()
ApplicationWorkbooksOpen "F:\111xlsx"
End Sub
================================
还真得不知道你的问题,出在那里。以上程序,我再EXCEL 2003 和 EXCEL 2007 里面测试都没有问题的。如果EXCEL 2003 运行时,会提醒转换文件格式,然后打开。如果用EXCEL 2007 就没有提示,直接打开。我的机子上,同时安装了 2003 和 2007。
在excel的VBA下测试正常,看您的 MainFilenameCaption 是否是合法的文件名路径。
还有,这个文件是否已经被打开,是否存在。
引用的excel库是否还正常。
首先在pro文件中添加CONFIG += qaxcontainer
接着程序实现
QString filepath=QFileDialog::getSaveFileName(this,tr("Save orbit"),"",tr("Microsoft Office 2007 (xlsx)"));//获取保存路径if(!filepathisEmpty()){
QAxObject excel = new QAxObject(this);
excel->setControl("ExcelApplication");//连接Excel控件
excel->dynamicCall("SetVisible (bool Visible)","false");//不显示窗体
excel->setProperty("DisplayAlerts", false);//不显示任何警告信息。如果为true那么在关闭是会出现类似“文件已修改,是否保存”的提示
QAxObject workbooks = excel->querySubObject("WorkBooks");//获取工作簿集合
workbooks->dynamicCall("Add");//新建一个工作簿
QAxObject workbook = excel->querySubObject("ActiveWorkBook");//获取当前工作簿
QAxObject worksheets = workbook->querySubObject("Sheets");//获取工作表集合
QAxObject worksheet = worksheets->querySubObject("Item(int)",1);//获取工作表集合的工作表1,即sheet1
QAxObject cellX,cellY;
for(int i=0;i<curRow;i++){
QString X="A"+QString::number(i+1);//设置要 *** 作的单元格,如A1
QString Y="B"+QString::number(i+1);
cellX = worksheet->querySubObject("Range(QVariant, QVariant)",X);//获取单元格
cellY = worksheet->querySubObject("Range(QVariant, QVariant)",Y);
cellX->dynamicCall("SetValue(const QVariant&)",QVariant(ui->tableWidget->formula(i,0)toInt()));//设置单元格的值
cellY->dynamicCall("SetValue(const QVariant&)",QVariant(ui->tableWidget->formula(i,1)toInt()));
}
workbook->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(filepath));//保存至filepath,注意一定要用QDir::toNativeSeparators将路径中的"/"转换为"\",不然一定保存不了。
workbook->dynamicCall("Close()");//关闭工作簿
excel->dynamicCall("Quit()");//关闭excel
delete excel;
excel=NULL;
}
下面的就是你想要的代码,先在工程里引用Excel,程序测试通过!!!
Dim NewApp As New ExcelApplication
Dim NewSheet As New ExcelWorksheet
Dim NewBook As New ExcelWorkbook
Set NewApp = New ExcelApplication
Set NewBook = NewAppWorkbooksOpen("d:\1xls", , , , "123")
‘第一位为路径,第五位为密码
Set NewSheet = NewBookWorksheets(1)
str1 = NewSheetCells(1, 1): str2 = NewSheetCells(1, 2)
‘获取a1,b1的数据
label1caption=str1
Text1Text = str2
NewBookClose
NewAppQuit
以上就是关于Excel2007关于Workbooks.open xlsx文件全部的内容,包括:Excel2007关于Workbooks.open xlsx文件、VB 打开Excel 提示 对象 “Open” 方法“workbook” 失败、QAxObject *workBooks = obj->querySubObject("Workbooks"); workBooks 返回值为NULL ;等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)