今宵梦醒何去 2018-05-17 18:55 采纳率: 0%
浏览 1709
已结题

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

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

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

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

  • 写回答

1条回答

  • 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秒

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型