【发布时间】:2020-01-15 08:49:37
【问题描述】:
我想使用QAxObject 创建一个新的 docx 文件。如何创建一个新的 doc 和 docx 文件并在 Windows 的 qt 中使用 QAxObject 编写我的文本。我尝试了这段代码,但找不到答案,因为它会打开现有文件,但我想创建新文件并使用QAxObject。
QString outFile("C:/test.docx");
QString inFile1("C:/test1.docx");
QString inFile2("C:/test2.docx");
QAxObject axObject("Word.Application");
QAxObject *documents = axObject.querySubObject("Documents");
QAxObject *document = documents->querySubObject("Open(const QString&, bool)", inFile1, true);
QAxObject *selection = axObject.querySubObject("Selection");
selection->dynamicCall("EndKey(QVariant&)", 6); // WdUnits::wdStory=6
selection->dynamicCall("InsertBreak(QVariant&)", 7); // WdBreakType::wdPageBreak=7
selection->dynamicCall("InsertFile(QString&)", inFile2);
document->dynamicCall("SaveAs(const QString&)", outFile);
document->dynamicCall("Close()");
axObject.dynamicCall("Quit()");
【问题讨论】:
-
您需要澄清您的问题并展示您自己已经尝试过的内容。因为有很多可能的答案,还有很多工作要做。不要写你正在做某事,展示你已经做过的事情并提出更详细的问题。
-
我想使用 QAxObjectin 创建一个新的 docx 文件。在我发布的链接中,它会打开一个现有文件。
-
请更新您的问题以获取所有必要信息。如果您要推动每个人访问外部链接,则不受欢迎。第二点,stackoverflow 不是免费编码服务,您需要自行调查您的问题并向社区展示汇总结果。
-
我更新了我的问题。
-
@DmitrySazonov:我完全理解这个问题:How to use ActiveQt to create a word document from scratch?,而不是打开/阅读现有文档。我找不到单个模板/示例/ 在 SO 或任何其他回答该问题的论坛上的教程,并在此处投票表明其他一些人希望回答这个问题。请重新打开!