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;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值