鱼C论坛

 找回密码
 立即注册
查看: 2818|回复: 16

[已解决]C++操作docx文档----高价求助

[复制链接]
发表于 2022-5-28 13:35:49 | 显示全部楼层 |阅读模式
20鱼币
有没有什么简单点的方法可以简单操作一下docx文档啊,就像操作txt文档那样,把数据输入就好。
求求各位大佬帮帮。
最佳答案
2022-5-28 13:35:50
#include <windows.h>
#include <combaseapi.h>
#include <iostream>

#import "C:\\Program Files\\Microsoft Office\\root\\Office16\\MSWORD.OLB" auto_search, auto_rename

Word::WdColor rgb(unsigned char r, unsigned char g, unsigned char b) {
    return (Word::WdColor)((b << 16) | (g << 8) | r);
}

int main() {
    CoInitialize(NULL);
    Word::_ApplicationPtr Application(__uuidof(Word::Application));
    Application->Visible = true;
    Word::DocumentsPtr docs = Application->Documents;
    Word::_DocumentPtr doc = docs->Add();
    Word::RangePtr range = doc->Content;

    range->Text = "hello world!";

    Word::_FontPtr font(__uuidof(Word::Font));
    font->Color = Word::wdColorRose;
    font->Name = "Courier New";
    font->Bold = true;
    font->Size = 24;
    range->Font = font;

    range->Paragraphs->Alignment = Word::wdAlignParagraphCenter;


#if 0
    range->Font->Color = rgb(255, 0, 0);
    range->Font->Color = rgb(0, 255, 0);
    range->Font->Color = rgb(0, 0, 255);
    
    range->Font->Color = rgb(255, 192, 203);
    range->Font->Color = rgb(218, 112, 214);
    range->Font->Color = rgb(123, 104, 238);
#endif

    std::cin.get();
    Application->Quit(&variant_t(Word::wdDoNotSaveChanges));
    CoUninitialize();
    return 0;
}

1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-28 13:35:50 | 显示全部楼层    本楼为最佳答案   
#include <windows.h>
#include <combaseapi.h>
#include <iostream>

#import "C:\\Program Files\\Microsoft Office\\root\\Office16\\MSWORD.OLB" auto_search, auto_rename

Word::WdColor rgb(unsigned char r, unsigned char g, unsigned char b) {
    return (Word::WdColor)((b << 16) | (g << 8) | r);
}

int main() {
    CoInitialize(NULL);
    Word::_ApplicationPtr Application(__uuidof(Word::Application));
    Application->Visible = true;
    Word::DocumentsPtr docs = Application->Documents;
    Word::_DocumentPtr doc = docs->Add();
    Word::RangePtr range = doc->Content;

    range->Text = "hello world!";

    Word::_FontPtr font(__uuidof(Word::Font));
    font->Color = Word::wdColorRose;
    font->Name = "Courier New";
    font->Bold = true;
    font->Size = 24;
    range->Font = font;

    range->Paragraphs->Alignment = Word::wdAlignParagraphCenter;


#if 0
    range->Font->Color = rgb(255, 0, 0);
    range->Font->Color = rgb(0, 255, 0);
    range->Font->Color = rgb(0, 0, 255);
    
    range->Font->Color = rgb(255, 192, 203);
    range->Font->Color = rgb(218, 112, 214);
    range->Font->Color = rgb(123, 104, 238);
#endif

    std::cin.get();
    Application->Quit(&variant_t(Word::wdDoNotSaveChanges));
    CoUninitialize();
    return 0;
}

1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-29 08:02:15 From FishC Mobile | 显示全部楼层
c操作这玩意还是比较弱的,还是寻求高能脚本诸如python一类
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-2 11:42:37 | 显示全部楼层
c++吗?
推荐一个第三方的lib库吧,操作docx:https://github.com/DocxFactory/DocxFactory
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-6 22:16:31 | 显示全部楼层
离谱
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-8 16:36:49 | 显示全部楼层
插眼,我也挺想知道的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-8 16:54:53 | 显示全部楼层

大佬可以请您详细讲一下吗?
#include <windows.h>
#include <combaseapi.h>
这两个头文件没用过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-9 00:55:51 | 显示全部楼层
烂泥化刚 发表于 2022-6-8 16:54
大佬可以请您详细讲一下吗?
#include
#include

先学这个
https://fishc.com.cn/forum-255-1.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-9 02:41:28 | 显示全部楼层
人造人 发表于 2022-6-9 00:55
先学这个
https://fishc.com.cn/forum-255-1.html

请问是windows编程吗
前一秒
刚刚开始看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-9 02:43:37 | 显示全部楼层
人造人 发表于 2022-6-9 00:55
先学这个
https://fishc.com.cn/forum-255-1.html

然后想请问您
<combaseapi.h>
这个库是作甚么的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-9 19:56:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-6-9 22:04:25 | 显示全部楼层
理想小青年 发表于 2022-6-2 11:42
c++吗?
推荐一个第三方的lib库吧,操作docx:https://github.com/DocxFactory/DocxFactory

有没有啥操作手册之类的啊,求求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-6-9 22:08:57 | 显示全部楼层

这个应该是靠电脑安装了office提供了相应的函数接口,有没有可以移植的方法啊,最后生成的exe能移植到其他电脑上运行的那种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-14 22:18:08 | 显示全部楼层
贾政景 发表于 2022-6-9 22:08
这个应该是靠电脑安装了office提供了相应的函数接口,有没有可以移植的方法啊,最后生成的exe能移植到其 ...

我没有找到这样的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-6-30 14:09:17 | 显示全部楼层

用python还是其他什么的滚开这个帖子,老子问的C++

评分

参与人数 1鱼币 -10 收起 理由
不二如是 -10 请维护论坛环境哦~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-4 07:00:48 | 显示全部楼层
烂泥化刚 发表于 2022-6-8 16:54
大佬可以请您详细讲一下吗?
#include
#include

windows.h是用来与windows系统交互
system函数是最常用的
可以涵盖大部分dos指令
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-4 07:02:12 | 显示全部楼层
贾政景 发表于 2022-6-9 22:08
这个应该是靠电脑安装了office提供了相应的函数接口,有没有可以移植的方法啊,最后生成的exe能移植到其 ...

那要看 那台电脑有没有和编写程序的电脑 版本相同的office吧
因为有些东西不是自己写的,所以局限性也挺大的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-29 10:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表