前言:环境 win7 64位,QT4.8.5,QT Creator

  1. 在 .pro 文件中加入语句"CONFIG+=qaxcontainer";
  2. 源码如下:
     //main.cpp
    #include "mainwindow.h"
    #include <QApplication>
    #include <QtGui>
    #include <QWidget>
    #include <QAxObject>
    #include <QAxWidget>
    #include <QFileDialog>
    #include <QObject>
    #include <iostream>
    using namespace std; int main(int argc, char *argv[])
    {
    QApplication a(argc, argv); QString filepath=QFileDialog::getSaveFileName(NULL,QObject::tr("Save orbit"),"/untitled.xls",QObject::tr("Microsoft Office 2007 (*.xlsx)"));//获取保存路径
    QList<QVariant> allRowsData;//保存所有行数据
    allRowsData.clear();
    // mLstData.append(QVariant(12));
    if(!filepath.isEmpty()){
    QAxObject *excel = new QAxObject("Excel.Application");//连接Excel控件
    excel->dynamicCall("SetVisible (bool Visible)",false);//不显示窗体
    excel->setProperty("DisplayAlerts", true);//不显示任何警告信息。如果为true那么在关闭是会出现类似“文件已修改,是否保存”的提示
    QAxObject *workbooks = excel->querySubObject("WorkBooks");//获取工作簿集合
    workbooks->dynamicCall("Add");//新建一个工作簿
    QAxObject *workbook = excel->querySubObject("ActiveWorkBook");//获取当前工作簿
    QAxObject *worksheets = workbook->querySubObject("Sheets");//获取工作表集合
    QAxObject *worksheet = worksheets->querySubObject("Item(int)",);//获取工作表集合的工作表1,即sheet1 for(int row = ; row <= ; row++)
    {
    QList<QVariant> aRowData;//保存一行数据
    for(int column = ; column <= ; column++)
    {
    aRowData.append(QVariant(row*column));
    }
    allRowsData.append(QVariant(aRowData));
    } QAxObject *range = worksheet->querySubObject("Range(const QString )", "A1:B1000");
    range->dynamicCall("SetValue(const QVariant&)",QVariant(allRowsData));//存储所有数据到 excel 中,批量操作,速度极快
    range->querySubObject("Font")->setProperty("Size", );//设置字号 QAxObject *cell = worksheet->querySubObject("Range(QVariant, QVariant)","A1");//获取单元格
    cell = worksheet->querySubObject("Cells(int, int)", , );//等同于上一句
    cell->dynamicCall("SetValue(const QVariant&)",QVariant());//存储一个 int 数据到 excel 的单元格中
    cell->dynamicCall("SetValue(const QVariant&)",QVariant("abc"));//存储一个 string 数据到 excel 的单元格中 QString str = cell->dynamicCall("Value2()").toString();//读取单元格中的值
    cout<<"\nThe value of cell is "<<str.toStdString()<<endl; /*QAxObject *font = cell->querySubObject("Font");
    font->setProperty("Name", itemFont.family()); //设置单元格字体
    font->setProperty("Bold", itemFont.bold()); //设置单元格字体加粗
    font->setProperty("Size", itemFont.pixelSize()); //设置单元格字体大小
    font->setProperty("Italic",itemFont.italic()); //设置单元格字体斜体
    font->setProperty("Underline", itemFont.underline()); //设置单元格下划线
    font->setProperty("Color", item->foreground().color()); //设置单元格字体颜色*/
    worksheet->querySubObject("Range(const QString&)", "1:1")->setProperty("RowHeight", );//调整第一行行高 workbook->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(filepath));//保存至filepath,注意一定要用QDir::toNativeSeparators将路径中的"/"转换为"\",不然一定保存不了。
    workbook->dynamicCall("Close()");//关闭工作簿
    excel->dynamicCall("Quit()");//关闭excel
    delete excel;
    excel=NULL;
    }
    return a.exec();
    }

参考资料:http://blog.csdn.net/li494816491/article/details/50274305

QT 操作 excel 教程的更多相关文章

  1. QT操作EXCEL

    介绍一下最基本的QT对EXCEL的读写操作. 声明:转载于:http://blog.csdn.net/czyt1988/article/details/52121360 在使用QT的操作数据库的时候, ...

  2. Qt 操作Excel

    Qt对Excel的数据读/写操作没有现存的类,需要使用QAxObject,下面是从网上下载下来的一个封装好的类,感觉还可以,一般情况下够用,拿来给大家分享. 头文件: #ifndef EXCELENG ...

  3. qt 操作excel表格

     自己编写的一个Qt C++类,用于操作excel表格,在Qt中操作excel需在.pro中增加CONFIG+=qaxcontainer配置. 1.打开Excel:objExcel = new QAx ...

  4. QT操作Excel(通过QAxObject使用了OLE,前提是本地安装了Excel)

    新建QT GUI项目,在选择选项中勾选ActiveQT Container. #include <qaxobject.h> QAxObject *obj = new QAxObject(& ...

  5. python 包之 xlwt 操作 excel 教程

    一.安装 pip install xlwt 二.创建表格并写入 创建表格,设置sheet名称 写入指定行列的数据,将表格进行保存 import xlwt # 创建一个workbook并设置编码 wor ...

  6. qt操作excel報錯解決

    如果電腦上沒有office,需要判斷,否则,会报错 onecore\com\combase\catalog\catalog.cxx()\combase.dll!00007FFF1DF823CB: (c ...

  7. Qt 操作excel报错

    onecore\com\combase\catalog\catalog.cxx(2376)\combase.dll!00007FFF1DF823CB: (caller: 00007FFF1DED3A1 ...

  8. Qt之操作Excel

    Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件. ...

  9. POI操作Excel(xls、xlsx)

    阿帕奇官网:http://poi.apache.org/ POI3.17下载:http://poi.apache.org/download.html#POI-3.17 POI操作Excel教程(易百教 ...

随机推荐

  1. C++ 头文件系列(iomanip)

    1. 简介 该头文件定义了一些参数化的操纵器(manipulatators),注意ios头文件也定义了一些. 2. maniapulators 2.1 C++98 resetiosflags : 重置 ...

  2. c#扩展方法的使用

    "扩展方法使您能够向现有类型"添加"方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型." 1.为什么会有扩展方法 你一定很疑问什么是扩展方法!什么 ...

  3. 重温javascript数据类型

    在javaScript中,有五种简单的数据类型,分别是 Undefined Null Boolean Number String 还有一种复杂的数据类型object,object本质是有一组无序的名值 ...

  4. eslint常见规则总结

    google: eslint+rules es6: impot When you import the module's default, don't use brace {} 意思是,当你使用默认的 ...

  5. 3、树莓派的配置:改静态IP、连接ssh、安装中文字体、安装谷歌输入法、增加USB电流、修改触摸屏分辨率、扩展sd卡空间、修复vi和vim乱码问题、安装配置远程桌面vnc

    本博文仅作本人操作过程的记录,留作备忘.自强不息 QQ1222698 1.连接上HDMI线,插上触摸屏,插上键盘,鼠标,网线,启动.系统正常启动,但是一直闪烁,不停的黑屏,是由于触摸屏的usb口供电不 ...

  6. win10下部署.Net Web项目到IIS10

    本问主要介绍如何将.Net Web项目部署到IIS10下面. 1.确保iis功能已开启 开启步骤如下:控制面板->程序 点击确定,ok,iis功能已开启. 2.打开iis,绑定站点到iis下面 ...

  7. JAVA 用数组实现 ArrayList

    我们知道 ArrayList 是一个集合,它能存放各种不同类型的数据,而且其容量是自动增长的.那么它是怎么实现的呢? 其实 ArrayList 的底层是用 数组实现的.我们查看 JDK 源码也可以发现 ...

  8. oracle 处理时间和金额大小写的相关函数集合

    CREATE OR REPLACE FUNCTION MONEY_TO_CHINESE(MONEY IN VARCHAR2) RETURN VARCHAR2 IS C_MONEY ); M_STRIN ...

  9. errcode 4103 invalid page hint 小程序模板消息推送遇到的坑

    invalid page hint一直提示这个坑爹的就是,我的小程序没发布之前,也就是测试版本用这个格式是可以的 /pages/myGroup/myGroup?groupid=22***但是发布成功以 ...

  10. Python 实现网页截屏、查库、发邮件

    本文介绍了使用 Python(2.7版本)实现网页截屏.查库.发邮件的 demo.用到了 selenium.phantomjs.mailer.jinja2.mysqldb 还有 image,都是比较典 ...