簡體   English   中英

C#OpenXML Mail Merge合並格式

[英]C# OpenXML Mail Merge mergeformat

我正在使用OpenXML處理郵件合並。 我正在從json文件中獲取數據以與我的文檔合並。

我的工作很棒,但是接下來我需要采用MERGEFORMAT中描述的格式,因為看起來好像OpenXML不能為我處理。

我已經為CAPS,FirstCap,Upper和Lower進行了編碼。 還對日期和時間格式進行了編碼(尚未測試)(以\\ @開頭),還管理了\\ f和\\ b。 (不知道如何處理\\ m或\\ v。

我現在正在看數字,但是雖然我看到數字以#開頭,但是我不確定如何在代碼中應用數字選項。

首先,我是要正確解決這個問題(將所有這些都應用到代碼中)還是缺少我可以在SDK中使用的功能?

其次,如何處理數字?

第三,我缺少任何合並選項嗎?

謝謝。

OpenXML SDK沒有提供類似的功能,但是實際上,您所需要的正是您所提到的。 您首先需要將數據解析為DoubleDateTime ,然后通過傳遞在MergeField中指定的format參數對其調用ToString

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

但是,如果您仍然想利用郵件合並選項,那么您已經涵蓋了MergeFields中所有可用的開關。
剩下的唯一事情就是根據您的確切要求(例如INCLUDEPICTURE,INCLUDETEXT,MERGESEQ,MERGEREC,NEXT等)添加對與郵件合並相關的更多字段的支持。

同樣,對某種形式的郵件合並分組的支持將是非常有益的。 有了這個,您將能夠合並某個合並范圍內的多個記錄。
例如,假設您定義了一個內容,該內容應根據您的記錄重復並填寫,例如具有一些MergeFields的單個表行。 然后,有了對此功能的支持,您將能夠為某個JSON數組中的每個項目動態生成新行,並且每行還將從其項目中獲取適當的數據。

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

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

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

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

感謝您的光臨。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM