Qt 将excel表添加到另一个表后面

//将test4中表1的内容填进test3表1中,接在已有内容后面。在.pro文件中添加QT += axcontainer ,在.h文件中#include<QAxObject>
    //第一个test3
    QAxObject excel3("Excel.Application");
    excel3.setProperty("Visible",true);
    QAxObject *workbook3 = excel3.querySubObject("WorkBooks");
    workbook3->dynamicCall("Open(const QString&)","D:\\test3.xlsx");
    QAxObject *work_book3;
    QAxObject *work_sheets3;
    QAxObject *work_sheet3;
    QAxObject *used_range3;
    QAxObject *rows3;
    QAxObject *column3;
    QAxObject *cell3;
    work_book3 = excel3.querySubObject("ActiveWorkBook");
    work_sheets3 = work_book3->querySubObject("Sheets");
    work_sheet3 = work_book3->querySubObject("Sheets(int)",1);
    used_range3 = work_sheet3->querySubObject("UsedRange");
    rows3 = used_range3->querySubObject("Rows");
    column3 = used_range3->querySubObject("Columns");
    int row_start3 = used_range3->property("Row").toInt();
    int row_count3 = rows3->property("Count").toInt();

    //第二个test4
    QAxObject excel4("Excel.Application");
    excel4.setProperty("Visible",true);
    QAxObject *workbook4 = excel4.querySubObject("WorkBooks");
    workbook4->dynamicCall("Open(const QString&)","D:\\test4.xlsx");
    QAxObject *work_book4;
    QAxObject *work_sheets4;
    QAxObject *work_sheet4;
    QAxObject *used_range4;
    QAxObject *rows4;
    QAxObject *column4;
    QAxObject *cell4;
    QVariant cell_value4;
    work_book4 = excel4.querySubObject("ActiveWorkBook");
    work_sheets4 = work_book4->querySubObject("Sheets");
    work_sheet4 = work_book4->querySubObject("Sheets(int)",1);
    used_range4 = work_sheet4->querySubObject("UsedRange");
    rows4 = used_range4->querySubObject("Rows");
    column4 = used_range4->querySubObject("Columns");
    int row_start4 = used_range4->property("Row").toInt();
    int column_start4 = used_range4->property("Column").toInt();
    int row_count4 = rows4->property("Count").toInt();
    int column_count = column4->property("Count").toInt();

    //用循环完成复制
    for(int i=row_start4;i<row_start4+row_count4;i++){

        for(int j=column_start4;j<column_start4+column_count;j++){

            cell4 = work_sheet4->querySubObject("Cells(int,int)",i,j);//获取单元格
            cell_value4 = cell4->property("Value");//获取单元格内容
            //获取单元格,注意是原有行的下一行
            cell3 = work_sheet3->querySubObject("Cells(int,int)",i+row_start3+row_count3-1,j);
            cell3->setProperty("Value",cell_value4);

        }
    }
    work_book3->dynamicCall("Save()");//保存文件
posted @ 2015-11-26 22:30  小小小竹子  阅读(1014)  评论(1编辑  收藏  举报