QT创建一个excel文件(通过save as 方法)

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 10:39   40   0

QString filepath = QFileDialog::getSaveFileName(this, QString::fromLocal8Bit("导出表格"), ".", tr("Microsoft Office(*.xlsx)"));//获取保存路径
if (!filepath.isEmpty()) {
QAxObject *excel = new

QString filepath = QFileDialog::getSaveFileName(this, QString::fromLocal8Bit("导出表格"), ".", tr("Microsoft Office(*.xlsx)"));//获取保存路径
 if (!filepath.isEmpty()) {
  QAxObject *excel = new QAxObject(this);
  excel->setControl("Excel.Application");//连接Excel控件
  excel->dynamicCall("SetVisible (bool Visible)", "false");//不显示窗体
  excel->setProperty("DisplayAlerts", false);//不显示任何警告信息。如果为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);//获取工作表集合的工作表1,即sheet1
  workbook->dynamicCall("SaveAs(const QString&)", QDir::toNativeSeparators(filepath));//保存至filepath,注意一定要用QDir::toNativeSeparators将路径中的"/"转换为"\",不然一定保存不了。
  workbook->dynamicCall("Close()");//关闭工作簿
  excel->dynamicCall("Quit()");//关闭excel
  delete excel;
  excel = NULL;
 }
 return true;

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP