c# - C# OpenXML 邮件合并合并格式
问题描述
我正在使用 OpenXML 来处理邮件合并。我正在从 json 文件中输入数据以与我的文档合并。
我的这个工作很好,但是我需要采用 MERGEFORMAT 中描述的格式,因为它看起来不像 OpenXML 正在为我处理这个。
我已经为 CAPS、FirstCap、Upper 和 Lower 编码。还针对日期和时间格式(以 \@ 开头)进行了编码(尚未测试),并且还管理了 \f 和 \b。(不确定如何处理 \m 或 \v。
我现在正在研究数字,但是当我看到一个以 # 开头的数字时,我不确定如何在代码中应用数字选项。
首先,我是否正确地解决了这个问题(在代码中应用了所有这些),还是我缺少可以在 SDK 中使用的东西?
其次,我如何处理数字?
第三,我是否缺少任何合并选项?
谢谢。
解决方案
OpenXML SDK 不提供这样的功能,但基本上您所需要的正是您所提到的。您首先需要将数据解析为Double
or DateTime
,然后ToString
通过传递 MergeField 中指定的格式参数来调用它们。
但是,如果您有兴趣,OpenXML SDK PowerTools 有一个DocumentAssembler模块,它执行类似的操作,它通过组合模板文档和数据源来生成结果文档。但在这种情况下,模板文档具有内容控件或仅具有特定语法的自定义文本占位符(而不是 MergeFields),并且数据以 XML 格式(而不是 JSON)提供。
尽管如此,如果您仍然想利用邮件合并选项,那么您已经涵盖了 MergeFields 中可用的所有开关。
剩下的唯一事情是添加对与邮件合并相关的更多字段的支持,具体取决于您的确切要求(如 INCLUDEPICTURE、INCLUDETEXT、MERGESEQ、MERGEREC、NEXT 等)。
此外,对某种形式的邮件合并分组的支持将是相当有益的。有了这个,您将能够在某个合并范围内合并多个记录。
例如,假设您定义了一个应该根据您的记录重复和填写的内容,例如具有一些 MergeFields 的单个表行。然后,通过支持此功能,您将能够为某个 JSON 数组中的每个项目动态生成新行,并且每行都将具有来自其项目的适当数据。
我希望这能给你一些想法。
推荐阅读
- python - 在 cv2 中使用 skimage 图像
- c# - 如何使用 C# 从 Visual Studio 中的标准控制台读取输出
- swift - 无法在swift 4中将时间戳日期转换为字符串
- python - pandas.read_fwf 忽略提供的 dtypes
- ajax - ajax请求中显示为“0:”的参数
- json - 使用 json 模式在 pyspark 中处理 REST 调用的更好方法
- c++ - 如何让递归函数输出数字并从f(0)开始并让f(n)向上计数
- ios - 如何从 XIB-Instance 访问视图
- assembly - 将相同的字节移动到两个不同地址之间的每个地址?
- ruby-on-rails - 无法使用搜索结果在rails中生成带有wicked_pdf的pdf