Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QAxObject and Excel Save as CSV
Forum Updated to NodeBB v4.3 + New Features

QAxObject and Excel Save as CSV

Scheduled Pinned Locked Moved Solved General and Desktop
8 Posts 3 Posters 4.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • pyuxingP Offline
    pyuxingP Offline
    pyuxing
    wrote on last edited by
    #1
        QAxObject excel("Excel.Application");
        excel.setProperty("Visible", true);    
        QAxObject * workBooks = excel.querySubObject("WorkBooks");
        workBooks->dynamicCall("Open(const QString&)", QString("F:/ExcelAction/test.xlsx"));
        workBooks->dynamicCall("SaveAs(const QString&)", QString("./test2018.csv"));
        workBooks->dynamicCall("Close (Boolean)", false); 
        excel.dynamicCall("Quit(void)");
    

    when running it,the output warning showed below :

    QAxBase::dynamicCallHelper: SaveAs(QString): No such property in  [unknown]
    	Candidates are:
    QAxBase: Error calling IDispatch member Close: Unknown error
    

    Anyone know the bug 's solutions thanks !

    D 1 Reply Last reply
    0
    • pyuxingP pyuxing
          QAxObject excel("Excel.Application");
          excel.setProperty("Visible", true);    
          QAxObject * workBooks = excel.querySubObject("WorkBooks");
          workBooks->dynamicCall("Open(const QString&)", QString("F:/ExcelAction/test.xlsx"));
          workBooks->dynamicCall("SaveAs(const QString&)", QString("./test2018.csv"));
          workBooks->dynamicCall("Close (Boolean)", false); 
          excel.dynamicCall("Quit(void)");
      

      when running it,the output warning showed below :

      QAxBase::dynamicCallHelper: SaveAs(QString): No such property in  [unknown]
      	Candidates are:
      QAxBase: Error calling IDispatch member Close: Unknown error
      

      Anyone know the bug 's solutions thanks !

      D Offline
      D Offline
      Devopia53
      wrote on last edited by Devopia53
      #2

      @pyuxing

      like this:

      QAxObject   *workbook = workBooks->querySubObject("Open(const QString&)", QString("F:/ExcelAction/test.xlsx"));
      workbook->dynamicCall("SaveAs(const QString&, int)", QDir::toNativeSeparators("./test2018.csv"), 6); // 6 = XlFileFormat::xlCSV
      
      pyuxingP 2 Replies Last reply
      2
      • D Devopia53

        @pyuxing

        like this:

        QAxObject   *workbook = workBooks->querySubObject("Open(const QString&)", QString("F:/ExcelAction/test.xlsx"));
        workbook->dynamicCall("SaveAs(const QString&, int)", QDir::toNativeSeparators("./test2018.csv"), 6); // 6 = XlFileFormat::xlCSV
        
        pyuxingP Offline
        pyuxingP Offline
        pyuxing
        wrote on last edited by
        #3

        @Devopia53 Thanks for your reply !
        I have done as you said ,but there is problem as before.

        QAxBase::dynamicCallHelper: Save(QString,int): No such property in  [unknown]
        	Candidates are:
        QAxBase: Error calling IDispatch member Close: Unknown error
        
        jsulmJ 1 Reply Last reply
        0
        • D Devopia53

          @pyuxing

          like this:

          QAxObject   *workbook = workBooks->querySubObject("Open(const QString&)", QString("F:/ExcelAction/test.xlsx"));
          workbook->dynamicCall("SaveAs(const QString&, int)", QDir::toNativeSeparators("./test2018.csv"), 6); // 6 = XlFileFormat::xlCSV
          
          pyuxingP Offline
          pyuxingP Offline
          pyuxing
          wrote on last edited by
          #4

          The code was showed below:

          int main(int argc, char *argv[])
          {
             // QCoreApplication a(argc, argv);
              QApplication a(argc, argv);
              CoInitializeEx(NULL, COINIT_MULTITHREADED);
              QAxObject excel("Excel.Application");
              excel.setProperty("Visible", false);  
              QAxObject * workBooks = excel.querySubObject("WorkBooks");
              workBooks->dynamicCall("Open(const QString&)", QString("F:/ExcelAction/test2018.xlsx"));
              QVariant titleValue = excel.property("Caption");    
              qDebug() << "excel title : " << titleValue;
              QAxObject * workBook = excel.querySubObject("ActiveWorkBook");
              QAxObject * workSheets = workBook->querySubObject("Sheets");    
          
              //QVariant returnValue;
              workBooks->dynamicCall("SaveAS(const QString&, int)", QDir::toNativeSeparators("F:\ExcelAction\test2018.csv"), 6);
          
              workBooks->dynamicCall("Close (Boolean)", false);
              excel.dynamicCall("Quit(void)");
              return a.exec();
          }
          
          1 Reply Last reply
          0
          • pyuxingP pyuxing

            @Devopia53 Thanks for your reply !
            I have done as you said ,but there is problem as before.

            QAxBase::dynamicCallHelper: Save(QString,int): No such property in  [unknown]
            	Candidates are:
            QAxBase: Error calling IDispatch member Close: Unknown error
            
            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #5

            @pyuxing What about SaveAs(QString,int) as @Devopia53 showed?

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            pyuxingP 1 Reply Last reply
            0
            • jsulmJ jsulm

              @pyuxing What about SaveAs(QString,int) as @Devopia53 showed?

              pyuxingP Offline
              pyuxingP Offline
              pyuxing
              wrote on last edited by
              #6

              @jsulm
              like this:

              QAxBase::dynamicCallHelper: SaveAS(QString&,int): No such property in  [unknown]
              	Candidates are:
              QAxBase: Error calling IDispatch member Close: Unknown error
              
              D 1 Reply Last reply
              0
              • pyuxingP pyuxing

                @jsulm
                like this:

                QAxBase::dynamicCallHelper: SaveAS(QString&,int): No such property in  [unknown]
                	Candidates are:
                QAxBase: Error calling IDispatch member Close: Unknown error
                
                D Offline
                D Offline
                Devopia53
                wrote on last edited by
                #7

                @pyuxing

                Method Open() and Close() are defined in the WorkBooks object.
                Method Save() and SaveAs() are defined in the WorkBook object.

                pyuxingP 1 Reply Last reply
                1
                • D Devopia53

                  @pyuxing

                  Method Open() and Close() are defined in the WorkBooks object.
                  Method Save() and SaveAs() are defined in the WorkBook object.

                  pyuxingP Offline
                  pyuxingP Offline
                  pyuxing
                  wrote on last edited by
                  #8

                  @Devopia53
                  Thanks a lot,with your help I have solved the problem now.

                  1 Reply Last reply
                  0

                  • Login

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Categories
                  • Recent
                  • Tags
                  • Popular
                  • Users
                  • Groups
                  • Search
                  • Get Qt Extensions
                  • Unsolved