【问题标题】:QAxObject -- not creating excel in right formatQAxObject - 没有以正确的格式创建 excel
【发布时间】:2013-07-18 07:28:15
【问题描述】:

我正在使用 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 文件所缺少的内容?

【问题讨论】:

    标签: qt qaxobject


    【解决方案1】:

    好的,我解决了这个问题。因为我安装的是Office2007, “保存”功能将文件保存为2007格式,但我将其保存为“*.xls”,某些格式无法正确识别。

    所以解决方法是,使用“SaveAs”将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);
    

    【讨论】:

      猜你喜欢
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 2016-10-04
      • 2016-11-18
      • 1970-01-01
      • 2012-02-17
      相关资源
      最近更新 更多