亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# OpenXML 郵件合并合并格式

C# OpenXML 郵件合并合并格式

C#
滄海一幻覺 2021-12-05 14:59:23
我正在使用 OpenXML 來處理郵件合并。我正在從 json 文件中輸入數據以與我的文檔合并。我的這個工作很好,但是我需要采用 MERGEFORMAT 中描述的格式,因為它看起來不像 OpenXML 正在為我處理這個。我已經為 CAPS、FirstCap、Upper 和 Lower 編碼。還針對日期和時間格式(以 \@ 開頭)進行了編碼(尚未測試),并且還管理了 \f 和 \b。(不確定如何處理 \m 或 \v。我現在正在考慮計算數字,但是雖然我看到數字以 # 開頭,但我不確定如何在代碼中應用數字選項。首先,我是否正確地解決了這個問題(在代碼中應用了所有這些),或者我是否缺少可以在 SDK 中使用的東西?其次,我如何處理數字?第三,我是否缺少任何合并選項?
查看完整描述

2 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

OpenXML SDK 沒有提供這樣的東西,但基本上你需要的正是你提到的。您首先需要將數據解析為Doubleor DateTime,然后ToString通過傳遞在 MergeField 中指定的格式參數來調用它們。

但是,以防萬一您感興趣,OpenXML SDK PowerTools 有一個DocumentAssembler模塊,它執行類似的操作,它通過組合模板文檔和數據源生成結果文檔。但在這種情況下,模板文檔具有內容控件或僅具有特定語法(而不是 MergeFields)的自定義文本占位符,并且數據以 XML 格式(而不是 JSON)提供。

盡管如此,如果您仍然想利用郵件合并選項,那么您幾乎已經涵蓋了 MergeFields 中可用的所有開關。
唯一剩下的就是添加對與郵件合并相關的更多字段的支持,具體取決于您的確切要求(如 INCLUDEPICTURE、INCLUDETEXT、MERGESEQ、MERGEREC、NEXT 等)。

此外,對某種形式的郵件合并分組的支持將是相當有益的。有了這個,您將能夠在某個合并范圍內合并多個記錄。
例如,假設您定義了一個應根據您的記錄重復和填寫的內容,例如具有一些 MergeFields 的單個表行。然后,通過支持此功能,您將能夠為某些 JSON 數組中的每個項目動態生成新行,并且每一行都將具有來自其項目的適當數據。

我希望這能給你一些想法。


查看完整回答
反對 回復 2021-12-05
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

在我發表評論之后......我確實想知道 string.ToString() 是否超載,所以進一步查看。

雖然 string.ToString() 沒有重載,但 double 有...所以,將數字字符串轉換為 double,然后將 .ToString 轉換為所需的數字格式。

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings

謝謝你看。


查看完整回答
反對 回復 2021-12-05
  • 2 回答
  • 0 關注
  • 321 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號