Qt 如何实现excel 创建、内容添加 与 修改。
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列的数据。
原文地址: https://www.cveoy.top/t/topic/i4hR 著作权归作者所有。请勿转载和采集!