如何在 C# 中应用 Word 快速样式 - 不仅仅是简单的格式设置而是整个样式?

2024-01-24

我承认,我对使用 Interop 库很陌生,但人们似乎总是给出的建议是,记录一个宏并检查 vba 代码。问题是,宏没有准确记录我在做什么:单击快速样式将其应用到当前选择.

我的任务非常简单:我需要将快速样式应用于段落(Microsoft.Office.Interop.Word.Paragraph)。使用设置样式但是,命令仅应用基本格式,并且该段落保留其原始快速样式选择(Normal).

使用 Remou 的方法虽然对我有用,但它看起来与我自己的代码非常相似,我无法让它工作,我认为这可能是我对对象模型的理解有点偏差。

public void AddParagraph(string text, string styleName = null)
{
  Paragraph paragraph = _document.Content.Paragraphs.Add();
  if (styleName != null)
  {
    paragraph.Range.set_Style(_document.Styles[styleName]);
  }

  paragraph.Range.Text = text;
  paragraph.Range.InsertParagraphAfter();
}

然后我用例如来称呼它AddParagraph("A title", "Heading 1");,但是使用上面的包装器构建我的文档的结果是,没有应用完整的样式,只有字体、颜色、大小和粗体/斜体。

我用的是我自己的.dotx文件,具有我自己定义和命名的样式,但只需从 Remou 复制代码即可使用我自己的模板,所以我认为这不是问题,并且使用该代码我无法弄清楚如何在每个段落中附加多个段落他们自己的造型。

谁能指出我的方法有什么问题,或者至少我如何才能使 Remou 提供的答案满足我的要求? :)


这对我有用。

Word.Application _wordApp = new Word.Application();
Word.Document oDoc = _wordApp.Documents.Add();
_wordApp.Visible = true;
_wordApp.Selection.TypeText("Heading");
oDoc.Paragraphs[1].set_Style(Word.WdBuiltinStyle.wdStyleHeading2);

当你说

paragraph.Range.Text = text + paragraph.Range.Text;

你得到的段落比你想象的要多。我认为你需要:

paragraph.Range.Text = text;

Try:

Paragraph paragraph = _document.Content.Paragraphs.Add();
paragraph.Range.Text = text;

if (styleName != null)
{ 
    paragraph.set_Style(_document.Styles[styleName]);
}

paragraph.Range.InsertParagraphAfter();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 中应用 Word 快速样式 - 不仅仅是简单的格式设置而是整个样式? 的相关文章

  • 如何使用 ioread64() 和 iowrite64() 访问 IO 内存?

    背景 我目前正在编写一个设备驱动程序教育设备 https github com qemu qemu blob master hw misc edu c在 qemu RISC V 中 由此question https stackoverflo
  • 从 gdb 设置 std::string 变量值?

    是否有可能 当调试器在断点处停止时 修改 std string 变量的值 而不需要采取诸如调整当前缓冲区的内存映像之类的黑客手段 例如类似于 set var mystring hello world 试试这个 经过测试并且对我有用 call
  • 如何在Windows窗体中平滑地重新绘制Panel

    如何将面板重漆成光滑的 我正在使用一个使面板无效的计时器 panel1 Invalidate 每 300 毫秒一次 然后panel1 Paint如果我向该面板添加图像 问题是它看起来像是在跳跃 我需要尽可能快地移动其上的一张图像 这是截屏问
  • EF 6:映射复杂类型集合?

    EF 6 代码优先 是否支持复杂类型集合 值对象集合 映射 我知道它支持复杂类型 但还没有找到我们拥有复杂类型集合的示例 例如 假设您有一个名为 Student 的实体 其中包含联系人集合 对于 NH 我可以简单地说 Student 有一个
  • 按文件创建日期排序(并枚举)目录列表?

    所以我有这个例程 public static IEnumerable
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 如何重写 C++ 标准库类函数?

    如何重写 C 标准库类函数 在我的应用程序中 我使用ofstream代码中许多不同位置的对象 现在我想在Linux Ubuntu中以不同的权限模式打开文件 但open的函数ofstream没有参数来指定它创建的文件的权限模式 现在我想覆盖o
  • NHibernate 在生产中很少会抛出违反主键异常,无法用测试用例重现

    试图弄清楚这个问题 对我来说 这似乎不可能 我的服务器报告在繁忙的服务器上每天发生一次或两次以下错误 PlaylistItem create System Data SqlClient SqlException Violation of P
  • 将字符串数组转换为 List

    我见过使用这个完成的例子 ToList 对于数组类型 这似乎仅可用在 Net 3 5 中 http msdn microsoft com en us library bb342261 aspx 我正在一个 ASP NET 项目上使用 NET
  • C 中的结构和联合,确定大小和访问成员

    All 这是一个关于 Unions 的例子 我觉得它令人困惑 struct s1 int a char b union struct char c long d long e var 考虑到char是1个字节 int是 2 个字节并且lon
  • C# 检测关闭应用程序

    我正在尝试创建任务栏替换 并且我想要每个正在运行的应用程序都有一个按钮 public void AddBtn string name Button newButton new Button this Controls Add newButt
  • C# 在不使用反射的情况下运行时出现“找不到方法”异常

    我在获得上述异常时遇到问题 我有一个相对简单的结构 分为两个 dll 第一个包含 IEntityService IEntity 和基本实现 第二个包含实际的实现和接口 因此 有一个 IMachine 服务实现了 IEntityService
  • Makefile:没有规则来制作目标

    我正在关注本指南makefile http www cs colby edu maxwell courses tutorials maketutor 但我根本不理解最后一个例子 并且我无法让我的 makefile 工作 因为我收到了错误ma
  • 实体框架中 1:1 关系中关联的主体端意味着什么

    public class Foo public string FooId get set public Boo Boo get set public class Boo public string BooId get set public
  • 如何使用 mongo-cxx-driver 设置 Visual Studio 项目设置?

    我已经在 Windows 10 上成功构建了用于 C 的 MongoDB 驱动程序版本 3 0 3 CMAKE INSTALL PREFIX C mongo cxx driver 但我不知道如何在 Visual Studio 2015 中设
  • 结构体指针运算符猜想(理论)

    结构体指针的使用非常频繁 因此有一个特殊的运算符 gt 下面的表达式是等价的 x y x gt y 将此运算符简单地视为如下定义的预处理器宏是否公平 define x gt x 为什么或者为什么不 或者它从一开始就被编码为运算符 这有何不同
  • 指向虚拟成员函数的指针。它是如何工作的?

    考虑以下 C 代码 class A public virtual void f 0 int main void A f A f 如果我不得不猜测 我会说 A f 在这种情况下意味着 A 的 f 实现的地址 因为指向常规成员函数和虚拟成员函数
  • 处理后退导航 Windows 10 (UWP)

    在我的 Xaml 页面中 我有一个框架 我正在尝试使用 backButton 事件来在frame 内导航 所以我尝试使用这段代码 public MainPage this InitializeComponent if Windows Fou
  • 我可以向函数添加属性以防止重入吗?

    目前 我有一些如下所示的功能 private bool inFunction1 false public void function1 if inFunction1 return inFunction1 true do stuff whic
  • 简单的 C# 屏幕共享应用程序

    我希望用 C 创建一个非常基本的屏幕共享应用程序 无需远程控制 我只希望用户能够将他们的屏幕广播到网络服务器 我应该如何实施这个 任何指向正确方向的指针将不胜感激 它不需要很高的 FPS 甚至更新 5 秒左右就足够了 您认为每隔 5 秒上传

随机推荐

  • 如何在 VS 项目中禁用 clang-cl 特定警告

    我使用一个第三方项目 它会产生大量警告 我在 VS 项目属性中禁用了所有这些 有时 我会切换到LLVM clang cl用于检查 clang 警告的工具集 第 3 方项目使用 clang cl 产生如此多的警告 以至于 VS 的输出量令人窒
  • 分析多进程 Python 脚本时出现神秘的 pickle 错误 [重复]

    这个问题在这里已经有答案了 我正在使用multiprocessing模块 我正在使用UpdateMessage对象 我自己的类 通过发送multiprocessing Queue对象 用于进程之间的通信 这是课程 class UpdateM
  • JBoss Netty 与 JSON

    我希望我的 Ajax 代码能够通过 Netty 连接服务器 为此 我需要在服务器端 Netty 处理程序中使用 JSON 解码器和编码器 是否有任何开箱即用的实现 或者我应该编写自己的实现 Thanks Gil 据我所知 没有内置的 JSO
  • rspec 集成测试中的会话对象

    我正在使用 rspec 和 capybara 进行集成测试 他们是在请求规范中创建会话对象的一种方法吗 我有一个视图页面 在其中使用会话对象来检查其值以显示选择性内容 我面临的问题是我无法在请求规范中创建会话对象 这是视图的示例 conte
  • 在子类和 UIViewController 中使用 UITextViewDelegate

    我正在子类化 UITextView 并在子类中实现一些委托方法 例如textViewDidChangeSelection但我还需要在视图控制器中获取 UITextView 委托的通知 因此 如果我创建子类的对象并在视图控制器中设置 text
  • 以编程方式更改 WPF 可编辑组合框的背景颜色

    我正在尝试动态更改可编辑的背景颜色ComboBox在运行时 使用代码 特别是 我想更改可编辑的背景TextBox这是ComboBox SO 上有几个关于这个问题的答案 比如 WPF更改代码中可编辑组合框的背景颜色 https stackov
  • 观看过程替换

    我经常运行命令 squeue u USER tee gt wc l where squeue is a 泥浆命令 https slurm schedmd com squeue html查看您正在运行多少个作业 这给了我两个输出squeue并
  • mysqldb 总是将整个查询结果拉入一个块,即使我只是执行 fetchone?

    所以如果我这样做 import MySQLdb conn MySQLdb connect cur conn cursor cur execute SELECT FROM HUGE TABLE print hello print cur fe
  • 适用于 TB 级结构化数据的 Greenplum、Pivo​​tal HD + Spark 还是 HAWQ?

    我在 Greenplum DB 中有 TB 的结构化数据 我需要对我的数据运行本质上是 MapReduce 作业 我发现自己至少重新实现了 MapReduce 的功能 以便这些数据适合内存 以流式传输方式 然后我决定到别处寻找更完整的解决方
  • 将图像裁剪为正方形 - Android

    如何从左侧和右侧剪切矩形图像 600 x 300 以适合方形 ImageView 我不想调整图像大小 我只想将其裁剪为 300 x 300 解决方案 正如 blackbelt所说 Bitmap cropImg Bitmap createBi
  • 如何将 Aeson 的解析器与 IO 结合使用

    我的数据类型包含许多字段 如果不是由 JSON 配置文件手动指定 则应随机设置 我正在使用 Aeson 来解析配置文件 做这个的最好方式是什么 目前 我将值设置为等于某个不可能的值 然后检查该值以进行编辑 data Example Exam
  • iPhone:点击透明 UIScrollView 后面的视图

    我有一个 UIScrollView 设置为具有清晰的背景 滚动视图的一部分确实有内容 但一部分没有 因此它显示了后面的其他视图 我希望能够单击 UIScrollView 并单击后面的 MKMapView 但仅限于 UIScrollView
  • oracle存储过程中如何创建和使用临时表?

    我想在存储过程中创建临时表并以相同的方式访问它 但出现错误ORA 00942 Table or view does not exists 以下是我尝试过的过程 Create procedure myproc IS stmt varchar2
  • Flutter firebase 消息传递中的双重通知

    最近我升级到 firebase messaging 10 0 0 当应用程序未运行时 如果收到通知 它会显示两次 我收到后在代码中修改了通知数据并显示了它 即使如此 我也可以看到已修改和未修改的通知 我不知道该通知在哪里触发 但是当应用程序
  • DOORS数据库中的动态数组值得使用吗?

    我是 DOORS 数据库的新开发人员 正在使用 dxl 编写脚本 如您所知 dxl 中有一维数组 我想使用多个维度 因此决定使用动态数组 但这大大减慢了我的脚本速度 当每个模块大约有 14 000 个对象时 脚本运行需要一天左右的时间 我想
  • 浏览核心数据对象图 [2]

    我问了一个question https stackoverflow com questions 12733490 navigating the core data object graph昨天我真的应该从一个更简单的例子开始 将我的问题提炼
  • 在实践 II 中使用 Scala Actor 编写应用程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 因为我的第一个问题太长 所以我将其作为一个单独的问题提出 这是关于基于参与者的应用程序架构的另一篇文章
  • 使用react-router登录后自动重定向

    我想在我的应用程序中建立一个 Facebook 登录反应 反应路由器 通量应用 我在登录事件上注册了一个侦听器 并且希望将用户重定向到 dashboard 如果他们已登录 我该怎么做 location push除非完全重新加载页面后 否则效
  • 使用带有新值的片段多次并进行后台维护

    我正在制作一个应用程序滑动菜单 and tab在底部 整个应用程序是fragment基于 我面临一些我正在使用的问题片段A然后点击一个按钮并转到片段B in 片段B有一个按钮 点击这个按钮片段A将用新值更新 等等 意味着应该发生从 A gt
  • 如何在 C# 中应用 Word 快速样式 - 不仅仅是简单的格式设置而是整个样式?

    我承认 我对使用 Interop 库很陌生 但人们似乎总是给出的建议是 记录一个宏并检查 vba 代码 问题是 宏没有准确记录我在做什么 单击快速样式将其应用到当前选择 我的任务非常简单 我需要将快速样式应用于段落 Microsoft Of