如果的打开Word文档是Visible参数设为false你会得不到Selection实体

VC++ COM自动化操作Word:高性能文档批量生成实战指南 在办公自动化和数据处理领域,通过编程接口批量操作Word文档是提升效率的关键技术。其核心原理是通过组件对象模型(COM)与Word应用程序进行交互,实现对文档对象模型的全面控制。这项技术的价值在于能够将重复性文档处理任务自动化,尤其适用于需要高性能、深度集成或处理复杂格式的场景。在VC++环境下,开发者可以利用原生代码的优势,通过COM接口直接驱动Word,实现诸如批量报告生成、合同填充、数据导出等应用。本文聚焦于VC++通过COM操作Word的实战方法,详细解析了对象模型、书签操作、性能优化等核心环节,并 阅读详情

以下是异常重现代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Word = Microsoft.Office.Interop.Word;
using Microsoft.Win32;

namespace WpfApplication5
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        List<string> words = new List<string>();
        public MainWindow()
        {
            InitializeComponent();
            words.Add("me");
            words.Add("you");
            words.Add("us");
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Word.Application objApplication = new Word.Application();
            OpenFileDialog objOpenFileDialog = new OpenFileDialog();
            objOpenFileDialog.Filter = "Word document (*.docx)|*.docx";
            objOpenFileDialog.ShowDialog();
            object strPath = objOpenFileDialog.FileName;
            object flag = false;
            //object nflag = true;
            var missing = Type.Missing;
            Word.Document objDocument = objApplication.Documents.Open(ref strPath, ref missing, ref flag, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref flag, ref missing, ref missing, ref missing, ref missing);
            try
            {
                foreach (string word in words)
                {
                    SelectionFind(word, objApplication);
                }
            }
            catch
            {

            }
            finally
            {
                objDocument.Save();
                ((Word._Application)objApplication).Quit();
            }
        }

        private void SelectionFind(string word, Word.Application objApplication)
        {
            try
            {
                objApplication.Selection.Find.ClearFormatting();
            }
            catch
            {

            }
            objApplication.Visible = false;
            try
            {
                objApplication.Selection.Find.Replacement.ClearFormatting();
            }
            catch
            {

            }
            objApplication.Selection.Find.Replacement.Highlight = 1;
            objApplication.Selection.Find.Text = word;
            objApplication.Selection.Find.Replacement.Text = word;
            objApplication.Selection.Find.Forward = true;
            objApplication.Selection.Find.Wrap = Word.WdFindWrap.wdFindContinue;
            objApplication.Selection.Find.Format = true;
            objApplication.Selection.Find.MatchCase = false;
            objApplication.Selection.Find.MatchWholeWord = false;
            objApplication.Selection.Find.MatchWildcards = false;
            objApplication.Selection.Find.MatchSoundsLike = false;
            objApplication.Selection.Find.MatchAllWordForms = false;
            objApplication.Selection.Find.Execute(Replace: Word.WdReplace.wdReplaceAll);
            objApplication.Options.DefaultHighlightColorIndex = Word.WdColorIndex.wdYellow;
            objApplication.Selection.Range.HighlightColorIndex = Word.WdColorIndex.wdYellow;
        }
    }
}


Qt 操作 Word 文档解决方案 (本人觉得官方提供的个人版demo可参考性太差,其中wps模块示例没图片的插入,demo可参考的接口太少了,个人版wps的sdk仅供了解,企业的是不是要钱呢?哈哈哈)其他的使用第三方库方案请参考我的其他文章(推荐安装docxcpp 库,已验证很好使) 阅读详情

相关推荐

办公自动化实战:Python与VBA驱动Word/WPS文档批量处理插件开发指南

办公自动化是提升现代办公效率的核心技术,其原理在于通过编程接口控制办公软件,自动执行重复性任务。在文档处理领域,这项技术价值显著,能大幅减少人工操作错误,解放人力投入更具创造性的工作。Python和VBA是实现自动化的关键技术,Python凭借其丰富的库生态和跨平台能力,结合python-docx或win32com等库,可灵活处理.docx文件或驱动本地Word进程;VBA则深度集成于Office,适合开发内嵌的复杂宏。典型的应用场景包括公文格式批量标准化、表格图片统一处理、敏感信息批量替换以及基于模板的文

weixin_30889885的博客 456

使用python对word文档进行另存为、合并操作处理

3. 将此文件另存为其他名称 【另存为】部分完整代码如下: 合并word 事件背景是,前段时间搬工位,每个同事都需要打印自己的名称和工位,所以每个人都会有一份word,此时就可以通过合并word生成一份所有人的信息,打印一次即可。 将文件拼接成新文件 可得到结果word文件 【word拼接】部分完整代码如下:...

weixin_44999258的博客 3587

【办公类-109-06】20250916圆形挂牌卡片15CM手工纸+动物头像+拼音表+word单面编辑

【办公类-109-06】20250916圆形挂牌卡片15CM手工纸+动物头像+拼音表+word单面编辑

reasonsummer的博客 1346

Excel表的操作

Excel.Application objApp = new Excel.Application();             objApp.DisplayAlerts = false; //注意一定要加上这句             objApp.Visible = false;             Excel.Workbooks workbooks = objApp.Workbook

linminliang的专栏 319

【办公类-109-04】20250913圆形挂牌卡片(接送卡&被子卡&床卡&入园卡_word编辑单面)

【办公类-109-04】20250913圆形挂牌卡片(接送卡&被子卡&床卡&入园卡_word编辑单面)

reasonsummer的博客 1576

别再手动调格式了!用Python的pywin32库,5分钟搞定Excel数据高亮并自动填入Word报告

本文介绍了如何利用Python的pywin32库实现Excel数据高亮并自动填入Word报告的自动化处理方案。通过详细的代码示例和实战技巧,帮助用户快速掌握文档处理自动化技术,大幅提升工作效率,告别手动调格式的繁琐操作。

crazybug1987的专栏 358

python 合并word文档,实现同一个文件夹下面的word合并成一个word

python 合并word文档,实现同一个文件夹下面的word合并成一个word

weixin_43931979的博客 1371

【办公类-119-02】20260201三个园区“国旗下讲话” 按班级组合docx模板(AI+excel+python)

【办公类-119-02】20260201三个园区“国旗下讲话” 按班级组合docx模板(AI+excel+python)

reasonsummer的博客 962

VC++ MFC程序通过COM自动化操作Word 2010生成文档实战指南

COM(组件对象模型)是微软Windows平台上实现软件组件间互操作的一套二进制接口标准,其核心原理在于定义了一套独立于编程语言的规范,允许不同进程或机器上的对象进行通信。在桌面应用开发中,COM自动化技术使得外部程序能够驱动和控制诸如Microsoft Office这类支持自动化接口的应用程序,实现程序化操作,极大提升了办公自动化和报表生成的效率与灵活性。对于使用VC++和MFC框架的开发者而言,通过COM自动化集成Word,可以将数据直接输出为格式规范、样式专业的文档,避免了手动拼接文本或依赖简陋导出格

weixin_33733810的博客 355

Cursor+Playwright MCP实现UI全自动化,告别繁琐元素定位!

摘要:本文探讨了利用Cursor和PlaywrightMCP实现UI自动化测试的创新方法。通过将AI编程助手与浏览器自动化技术结合,解决了传统UI自动化测试中元素定位繁琐、维护成本高等痛点。文章详细介绍了项目架构设计、AI使用技巧(包括精准提问和编写.mdc规则文档),以及如何实现自然语言测试用例到自动化脚本的转换。最终实现了测试人员只需输入手工测试步骤,AI即可自动生成完整测试代码的智能化流程,并展望了通过Excel表格一键生成测试用例的未来发展方向,为UI自动化测试提供了高效解决方案。

baidu_29774881的博客 2794

(Linux)DHCP 超级作用域和中继代理(超难受做了超久)

DHCP服务器在192.168.159.0 可以实现分配IP的功能,现在要跨网段分配IP 就需要用到DHCP中继代理。中继代理有两张网卡分别eth0:IP 192.168.159.2 ;eth1: IP:192.168.200.2 。现在要实现192.168.200.0网段的客户机可以获取DHCP服务器的IP。中继代理其实是相当于一个路由器的作用 DHCP服务器的IP地址 :192.168.159...

DJ_joker的博客 2225

C++驱动Word自动化:COM接口实战与模板化文档生成

文档自动化是企业级应用开发中的核心需求,尤其在数据报表生成和批量文档处理场景下。其原理是通过程序化接口操控办公软件,实现数据与样式的自动融合,从而提升效率并减少人工错误。在技术选型上,对于性能敏感或已有庞大C++代码基的系统,直接使用C++操作Word成为务实选择,这需要深入理解COM(组件对象模型)技术。COM作为微软的组件对象模型,充当了C++与Word之间的桥梁,允许开发者通过暴露的接口精准操控Word对象模型。其技术价值在于能无缝集成到现有C++架构,避免引入额外语言运行时,同时提供底层控制力以满足

weixin_34187862的博客 374

simulink调用C代码函数-C Caller模块

simulink中如何调用写好的C代码函数?使用C Caller模块调用C代码。

weixin_40531919的博客 5670

word工具类

package org.foreverframework.office; import java.io.File; public class MSWordUtil { private static final String COLUMNS = "Columns"; private static final String CELLS = "Cells"; priva...

iteye_5724的博客 160

在 CentOS Stream 10 上搭建 Kubernetes 集群并支持开发调试与日志查看

搭建 Kubernetes 集群的每个步骤详细的文档。

灵犀物润 1641

阿里云大模型 ACP 认证教材内容突变?这些改动藏着通关密码,不看亏大!

【摘要】核心章节大换血,安全合规融入实战场景,大模型微调用数学深度解析,部署章节带来阿里云产品对比实战攻略,甚至整章内容被替换成藏满学习彩蛋的行业趋势指南。这些改动不仅重塑考试重点,更暗藏官方命题风向——安全合规考场景方案,微调原理考几何解析,部署设计考分析框架。无论你是数学小白还是部署新手,这篇攻略都将带你吃透变动逻辑,附赠急救包和考点清单,帮你抓住这些“隐形加分项”,速来解锁通关秘籍!

davidkorhenn的博客 1755

Pywin32操作Excel和Word的3个高级技巧:自动筛选、条件格式与跨文档粘贴(避坑指南)

本文详细介绍了使用Pywin32操作Excel和Word的3个高级技巧:自动筛选、条件格式与跨文档粘贴,并提供了避坑指南。通过实战代码示例,帮助开发者掌握自动化文档处理技术,提升工作效率,特别适合需要处理大量Excel和Word文档的场景。

anuancong1219的博客 441

DeepSeek R1-32B医疗大模型的完整微调实战分析(全码版)

【代码】DeepSeek R1-32B医疗大模型的完整微调实战指南(全码版)

AllenLV的博客 5102

VC操纵Word

我们操纵Word需要通过类型库中的MFC类。而这些类,应该都是基于一个叫COleDispatchDriver的类。至少我所了解到的都是这样。 COleDispatchDriver没有基类。COleDispatchDriver类实现OLE自动化中的客户方。OLE调度接口为访问一个对 象的方法和属性提供了途径。COleDispatchDriver的成员函数连接,分离,创建和释放一个IDis...

weixin_30710457的博客 89

基于FreeRedis实现的.NET Redis客户端缓存缓存键条件优雅过滤

在.NET开发中,使用Redis作为缓存解决方案是很常见的。FreeRedis是一个功能强大的Redis客户端库,它提供了丰富的功能和灵活性,使我们能够轻松地与Redis进行交互。在本文中,我们将探讨如何使用FreeRedis实现缓存键条件的优雅过滤,以提高缓存的效率和准确性。

RzuScala的博客 328

从服务器到桌面超算:当3999美元的NVIDIA DGX Spark装上Ubuntu,普通开发者能玩出什么花?

DGX Spark的出现,标志着AI算力正在经历从"数据中心集中供给"到"个人桌面按需拥有"的范式转移。它让开发者可以在本地完成从数据预处理、模型微调到推理验证的全流程,只有在需要大规模训练时才调用云端资源。迭代速度:从按小时计费的云端调试,变成随时随地的本地实验数据主权:敏感信息永不离开本地成本可控:一次投入,长期使用,不受API调用次数限制AI算力民主化的时代,真的来了。你的下一台超级计算机,不必在云端。它就在你的桌面上,安静地等待着你的下一个创意。附录:实用资源。

QQ_778132974的博客 616

【办公类-109-12】20260901圆形挂牌(模版重制:文本框圆形重叠_word编辑单面_接送卡&被子卡&床卡&入园卡)

【办公类-109-12】20260901圆形挂牌(模版重制:文本框圆形重叠_word编辑单面_接送卡&被子卡&床卡&入园卡)

reasonsummer的博客 587

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 在Excel(xlsx)文件中用OpenXml SDK 添加一个新的Worksheet并写入字符串
下一篇: 关于向Word文档中的RichText控件插入rtf内容的问题
勾吴江南
博客等级 码龄15年 39粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值