最近做一个项目,是在中标麒麟下,使用Qt将一些数据以表格的形式导出word文档中,我查了资料,有两种解决方法:
1.使用html生成word,可以对表格、字体等进行一些设置;
2.下载openoffice,使用Qt操作openoffice,即openoffice API开发;
我使用的是方法一,遇到一个问题,就是软件导出的文档(.doc)使用中标普华文字处理打开,文档中有表格,但是其中中文内容乱码,将后缀名改为.html,用浏览器打开,是正常的。软件要求导出的是.doc文件,不是.html文件。各位大神,你认为出现这种现象的原因是什么?请给出好的解决建议??
方法二,我对openoffice API开发了解的不多,有哪位大神有什么好的相关推荐,让我了解一下openoffice API开发。
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秒