我正在与QAxObject合作,并能够打开现有的文件和读取不同的工作表和单元格。
但是当我使用QAxObject创建一个新的excel文件时。它正在创建test_1.xls文件。但是当我打开这个文件时,它给了我错误。我正在使用ms-excel-2007。
代码:
QAxWidget excel_1("Excel.Application");
excel_1.setProperty("Visible", false);
QAxObject * workbooks_1 = excel_1.querySubObject("WorkBooks");
workbooks_1->dynamicCall("Add");
QAxObject * workbook_1 = excel_1.querySubObject("ActiveWorkBook");
QAxObject * worksheets = workbook_1->querySubObject("WorkSheets");
excel_1.setProperty("DisplayAlerts", 0);
workbook_1->dynamicCall("SaveAs (const QString&)", QString("D:\\Temp\\test_1.xls"));
workbook_1->dynamicCall("Close (Boolean)", false);
excel_1.setProperty("DisplayAlerts", 1);
excel_1.dynamicCall("Quit (void)");error message当我尝试打开此文件时:
The file you are trying to open is diffrent format than xls.
Verify that file is corrupted or not do you want to open this file or not请建议我在创建正确格式的.xls文件时遗漏了什么?
发布于 2013-07-19 11:58:19
好了,我解决了这个问题。由于我安装了Office2007,“保存”功能会将文件保存为2007格式,但我将其保存为"*.xls",有些格式无法正确识别。
因此,解决方案是,使用“另存为”将excel保存为2003格式。
How to set excel column format though Qt?
QList<QVariant> lstParam;
lstParam.append("D:\\Temp\\test_1.xls");
lstParam.append(-4143);
lstParam.append("");
lstParam.append("");
lstParam.append(false);
lstParam.append(false);
lstParam.append(1);
lstParam.append(2);
lstParam.append(false);
lstParam.append(false);
lstParam.append(false);
lstParam.append(false);
workbook_1->dynamicCall("SaveAs(QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant)", lstParam);https://stackoverflow.com/questions/17717230
复制相似问题