shuai33442
今宵梦醒何去
采纳率0%
2018-05-17 18:55 浏览 1.5k

中标麒麟下,如何使用Qt将一些数据以表格的形式导出word文档中?

10

最近做一个项目,是在中标麒麟下,使用Qt将一些数据以表格的形式导出word文档中,我查了资料,有两种解决方法:
1.使用html生成word,可以对表格、字体等进行一些设置;
2.下载openoffice,使用Qt操作openoffice,即openoffice API开发;

我使用的是方法一,遇到一个问题,就是软件导出的文档(.doc)使用中标普华文字处理打开,文档中有表格,但是其中中文内容乱码,将后缀名改为.html,用浏览器打开,是正常的。软件要求导出的是.doc文件,不是.html文件。各位大神,你认为出现这种现象的原因是什么?请给出好的解决建议??

方法二,我对openoffice API开发了解的不多,有哪位大神有什么好的相关推荐,让我了解一下openoffice API开发。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答 默认 最新

  • weixin_42165846 weixin_42165846 2018-05-18 02:20

    Excel中每个格都可以单独操作,比如:
    sTitle=QObject::tr(u8"标题");
    QAxObject* cell=work_sheet->querySubObject("Cells(int,int)",2,1);
    //cell->setProperty("Value",sTitle);
    cell->dynamicCall("SetValue(const QVariant&)",sTitle);

    cell就是一个小格,这里我们对cell赋值,(2,1)这个格子就会填“标题”
    注意!!这里对cell赋值用的方法是dynamicCall()而不是setProperty()。这很重要,因为WPS不支持setProperty()。office对这两个方法都支持,啧啧,还是office好。

    另外,有没有想过如果要导出上万个格怎么办?
    每次都调用work_sheet->querySubObject(“Cells(int,int)”,x,y)?
    有兴趣的朋友可以搜一下range,一次赋值一个区域。我导出过一个文件,原来用时6分钟,用了range,大概15秒

    点赞 1 评论 复制链接分享

相关推荐