前言:环境 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. Func和Action委托简单用法

    Func和Action类是特殊的类型,它们允许你在不必指定自定义委托类型的情况下,去使用委托.在整个.NET框架中都可以使用它们.例如,在我们考察并行计算时,你也会看到这两个类的示例. 上面一段文字是 ...

  2. Search an Element in an array

    Given an integer array and an element x, find if element is present in array or not. If element is p ...

  3. lesson - 5 Linux用户和组管理

    1. /etc/passwd由 : 分隔成7个字段(1) 用户名 规则:大小写字母.数字.减号(不能出现在首位).点以及下划线,其他字符不合法 (2) x 放密码,安全起见放到 /etc/shadow ...

  4. rabbitMQ教程(三) spring整合rabbitMQ代码实例

    一.开启rabbitMQ服务,导入MQ jar包和gson jar包(MQ默认的是jackson,但是效率不如Gson,所以我们用gson) 二.发送端配置,在spring配置文件中配置 <?x ...

  5. iOS学习——iOS 整体框架及类继承框架图

    整理自:IOS 整体框架类图值得收藏 一 整体框架 在iOS开发过程中,对iOS的整理框架的了解和学习是必不可少的一个环节,今天我们就好好来了解一下iOS的整体框架.首先贴一个关于iOS的框架介绍:i ...

  6. Ajax异步提交登录(2)--登录使用

    http://cjp1989.iteye.com/blog/1740964 1.Ajax的原理: Ajax的原理就是:通过javascript的方式,将前台数据通过xmlhttp对象传递到后台,后台在 ...

  7. 高效的CSS代码(2)

    ——阅读笔记,欢迎纠错^_^ 内容比较零散..... 1.让浮动元素的父容器根据元素的高度而自适应高度的方法: <div class="clearfix"><di ...

  8. 关于 python 新式类和旧式类继承顺序的验证

    参考:http://www.cnblogs.com/blackmatrix/p/5630515.html 官方:https://docs.python.org/2/tutorial/classes.h ...

  9. StringMVC @RequestMapping method属性

    @RequestMapping(value="/testMethod",method=RequestMethod.POST) public String testMethod(){ ...

  10. Windows程序设计学习笔记(四)自绘控件与贴图的实现

    Windows系统提供大量的控件供我们使用,但是系统提供的控件样式都是统一的,不管什么东西看久了自然会厌烦,为了使界面更加美观,添加一些新的东西我们需要自己绘制控件. 控件在默认情况下并不进行自绘,如 ...