当前位置: 首页 > news >正文

wordVSTO插件实现自动填充序号

wordVSTO插件实现自动填充序号

开发环境:VS2022

核心代码如下:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Word = Microsoft.Office.Interop.Word;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Tools.Word;namespace WordAddIn1
{public partial class ThisAddIn{private void ThisAddIn_Startup(object sender, System.EventArgs e){}private void ThisAddIn_Shutdown(object sender, System.EventArgs e){}protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject(){return new 鑫鑫Ribbon();}#region VSTO 生成的代码/// <summary>/// 设计器支持所需的方法 - 不要修改/// 使用代码编辑器修改此方法的内容。/// </summary>private void InternalStartup(){this.Startup += new System.EventHandler(ThisAddIn_Startup);this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);}#endregion}[ComVisible(true)][Guid("A1B2C3D4-E5F6-7890-ABCD-EF1234567890")]public class 鑫鑫Ribbon : Office.IRibbonExtensibility{private Office.IRibbonUI ribbon;public string GetCustomUI(string ribbonID){// 确保返回有效的Ribbon XMLstring ribbonXml = @"<customUI xmlns='http://schemas.microsoft.com/office/2009/07/customui' onLoad='OnLoad'><ribbon><tabs><tab id='XinXinTab' label='鑫鑫工具箱' insertAfterMso='TabHome'><group id='XinXinGroup' label='表格工具'><button id='btnFillNumbers' label='自动填充序号' size='large'onAction='OnFillNumbersClick'imageMso='Numbering'/></group></tab></tabs></ribbon>
</customUI>";// 记录日志以便调试try{System.IO.File.WriteAllText(System.IO.Path.Combine(System.IO.Path.GetTempPath(), "RibbonDebug.log"), $"Ribbon XML generated at {DateTime.Now}: {ribbonXml}");}catch { }return ribbonXml;}public void OnFillNumbersClick(Office.IRibbonControl control){try{Word.Application wordApp = Globals.ThisAddIn.Application;Word.Selection selection = wordApp.Selection;// 检查是否选中了表格if (selection.Range.Tables.Count > 0){Word.Table selectedTable = selection.Range.Tables[1];FillTableWithNumbers(selectedTable);MessageBox.Show($"已为选中的表格填充序号,共 {selectedTable.Rows.Count} 行", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);}else{// 如果没有选中表格,检查文档中的所有表格Word.Document doc = wordApp.ActiveDocument;if (doc.Tables.Count > 0){int totalTables = 0;foreach (Word.Table table in doc.Tables){FillTableWithNumbers(table);totalTables++;}MessageBox.Show($"已为文档中的 {totalTables} 个表格填充序号", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);}else{MessageBox.Show("文档中没有找到表格!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}}catch (Exception ex){MessageBox.Show($"填充序号时出错: {ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);}}private void FillTableWithNumbers(Word.Table table){for (int i = 1; i <= table.Rows.Count; i++){try{table.Cell(i, 1).Range.Text = i.ToString();}catch{// 如果第一列不存在或无法访问,跳过该行}}}public void OnLoad(Office.IRibbonUI ribbonUI){this.ribbon = ribbonUI;try{System.IO.File.AppendAllText(System.IO.Path.Combine(System.IO.Path.GetTempPath(), "RibbonDebug.log"), $"Ribbon loaded at {DateTime.Now}\r\n");}catch { }}}
}

在这里插入图片描述
工程源码文件:https://download.csdn.net/download/weixin_43050480/91997447

http://www.dtcms.com/a/399309.html

相关文章:

  • 海口网站建设哪家专业灌南住房建设局网站
  • 若依框架 (Spring Boot 3) 集成 knife4j 实现 OpenAPI 文档增强
  • MySQL分库分表详解:从原理、策略到ShardingSphere中间件选型,避坑指南一篇就够了
  • Excel知识体系
  • 零基础网站建设入门到精通视频教《妻子》在线观看免费韩剧
  • AI 大模型驱动的开源知识库搭建系统 PandaWiki的网页挂件机器人教程
  • 甘露园网站建设wordpress文章页面区别
  • 网上做视频赚钱的网站有哪些企查查企业信息
  • 网站生成静态页面工具wordpress menu icons
  • [css] flex 布局设置文字不自动换行
  • Suno V5首发 – V5模型重磅来袭 —— AI 音乐创作进入全新纪元
  • 构建AI智能体:四十二、使用 Qwen-Agent Assistant 调用高德 API 实现天气查询
  • 网站用的服务器网站怎么维护更新
  • Metal - 2. 3D 模型深度解析
  • 做非经营网站需要营业执照莱芜在线沙总
  • 网站建设模板研究玉林市网站开发公司电话
  • 无线数传模块优化挖掘机工厂机械设备的远程监控通讯
  • 【最终章】-串口收发指令处理器-Verilog语法学习EP12
  • 嵌入模型与向量数据库
  • 白山商城网站建设昆明网站建设猫咪
  • git的在工作中使用的一些注意事项
  • 河北网站备案多久wordpress站点管理
  • 力扣300.最长递增子序列(经典dp)力扣375.猜数字II力扣.329矩阵最长的递增子序列力扣.33搜索旋转排序数组
  • Kasaraju 算法详解:强连通分量(SCC)检测与循环依赖分析
  • python+springboot+vue的食物营养分析与推荐网站
  • 网站前端开发工具有哪些?常用网站前端开发工具推荐、网站前端开发工具对比与最佳实践分享
  • SMBJ 简单使用指南 实现在 Java/Android 程序中访问 SMB 服务器
  • 做网站市场价关键词首页排名优化价格
  • 给菠菜网站做外包网站主持人制作方法
  • C#性能优化实战:多线程与异步编程技巧详解