QT导出excel

在Qt中使用QAxObject类访问Com组件对象,需要在pro文件中添加下面的内容:

QT       +=axcontainer  

bool exportexcel()
{
        QString filePath = "test.xlsx";
        QAxObject * work_book;
        QAxObject excel("Excel.Application");
        excel.setProperty("Visible", false);
        excel.setProperty("DisplayAlerts", false);//不显示任何警告信息
        QAxObject *work_books = excel.querySubObject("WorkBooks");


        QFile xlsFile(filePath);
        if (xlsFile.exists()) {
                work_book = work_books->querySubObject("Open(const QString &)", filePath);
        }
        else {
                work_books->dynamicCall("Add");
                work_book = excel.querySubObject("ActiveWorkBook");
        }


        QAxObject *work_sheets = work_book->querySubObject("Sheets");
        QAxObject *first_sheet = work_sheets->querySubObject("Item(int)", 1);
        QAxObject *cell = first_sheet->querySubObject("Cells(int,int)", 1, 1);
        cell->setProperty("Value", "test");


        //    QAxObject *font = cell->querySubObject("Font");  //获取单元格字体
        //    font->setProperty("Bold", true);  //设置单元格字体加粗 
        //    font->setProperty("Size", 16);  //设置单元格字体大小
        //    cell->setProperty("RowHeight", 50);  //设置单元格行高
        //    cell->setProperty("ColumnWidth", 30);  //设置单元格列宽
        //    cell->setProperty("HorizontalAlignment", -4108); //左对齐(xlLeft):-4131  居中(xlCenter):-4108  右对齐(xlRight):-4152
        //    cell->setProperty("VerticalAlignment", -4108);  //上对齐(xlTop)-4160 居中(xlCenter):-4108  下对齐(xlBottom):-4107
        //    cell->setProperty("WrapText", true);  //内容过多,自动换行
        //    //cell->dynamicCall("ClearContents()");  //清空单元格内容
        //    QAxObject* interior = cell->querySubObject("Interior");
        //    interior->setProperty("Color", QColor(0, 255, 0));   //设置单元格背景色(绿色)
        //    QAxObject* border = cell->querySubObject("Borders");
        //    border->setProperty("Color", QColor(0, 0, 255));   //设置单元格边框色(蓝色)
        //    QAxObject *font = cell->querySubObject("Font");  //获取单元格字体
        //    font->setProperty("Name", QStringLiteral("华文彩云"));  //设置单元格字体
        //    font->setProperty("Bold", true);  //设置单元格字体加粗
        //    font->setProperty("Size", 20);  //设置单元格字体大小
        //    font->setProperty("Italic", true);  //设置单元格字体斜体
        //    font->setProperty("Underline", 2);  //设置单元格下划线
        //    font->setProperty("Color", QColor(255, 0, 0));  //设置单元格字体颜色(红色)


        work_book->dynamicCall("SaveAs(const QString &)", QDir::toNativeSeparators(filePath)); //转换路径不可少,否则会崩溃
        work_book->dynamicCall("Close(Boolean)", false);  //关闭文件
        excel.dynamicCall("Quit(void)");  //退出
        return true;
}

你可能感兴趣的:(编程)