Qt可以通过使用QAxObject类来实现与Excel的交互,实现Excel的创建、内容添加和修改。下面是一个简单的示例代码:

#include <QAxObject>

// 创建Excel文件
void createExcelFile(const QString& filePath)
{
    QAxObject* excel = new QAxObject("Excel.Application");
    excel->dynamicCall("SetVisible(bool)", false);
    QAxObject* workbooks = excel->querySubObject("Workbooks");
    QAxObject* workbook = workbooks->querySubObject("Add()");
    QAxObject* worksheets = workbook->querySubObject("Worksheets");
    QAxObject* worksheet = worksheets->querySubObject("Item(int)", 1);
    
    // 在第1行第1列插入数据
    QAxObject* cell = worksheet->querySubObject("Cells(int, int)", 1, 1);
    cell->dynamicCall("SetValue(const QString&)", "Hello");
    
    // 保存文件并关闭Excel
    workbook->dynamicCall("SaveAs(const QString&)", filePath);
    workbook->dynamicCall("Close()");
    excel->dynamicCall("Quit()");
    delete excel;
}

// 修改Excel文件
void modifyExcelFile(const QString& filePath)
{
    QAxObject* excel = new QAxObject("Excel.Application");
    excel->dynamicCall("SetVisible(bool)", false);
    QAxObject* workbooks = excel->querySubObject("Workbooks");
    QAxObject* workbook = workbooks->querySubObject("Open(const QString&)", filePath);
    QAxObject* worksheets = workbook->querySubObject("Worksheets");
    QAxObject* worksheet = worksheets->querySubObject("Item(int)", 1);
    
    // 修改第1行第1列的数据
    QAxObject* cell = worksheet->querySubObject("Cells(int, int)", 1, 1);
    cell->dynamicCall("SetValue(const QString&)", "World");
    
    // 保存文件并关闭Excel
    workbook->dynamicCall("Save()");
    workbook->dynamicCall("Close()");
    excel->dynamicCall("Quit()");
    delete excel;
}

调用createExcelFile函数可以创建一个新的Excel文件,并在第1行第1列添加数据。调用modifyExcelFile函数可以修改已存在的Excel文件的第1行第1列的数据。

Qt 如何实现excel 创建、内容添加 与 修改。

原文地址: https://www.cveoy.top/t/topic/i4hR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录