WordprocessingDocument C# 中的 SUM 值到 word contentControl

SUM Value in WordprocessingDocument C# to word contentControl

所以这个论坛上的某个人可能对如何轻松解决这个问题有很好的意见,我正在努力思考什么可能是最好的 ide。 下面是我的代码的摘录,它所做的是读取传入消息,在这种情况下是一个 XML 具有这样的声明

<Key> Avg_exkl_moms </Key>
<Value>123</Value>
<Key> Tjal_exkl_moms </Key>
<Value>321</Value>
<Key> Prov_exkl_moms </Key>
<Value>7375</Value>

<Key> Avg _moms </Key>
<Value>13</Value>
<Key> Tjal _moms </Key>
<Value>31</Value>
<Key> Prov _moms </Key>
<Value>75</Value>

<Key> Avg_ inkl _moms </Key>
<Value>456</Value>
<Key> Tjal_ inkl _moms </Key>
<Value>555</Value>
<Key> Prov_ inkl _moms </Key>
<Value>555</Value>

word 文档有相应的 contentControlTagName,所以 Avg_inkl_moms 将填充为 7375 的字段值 下面是提取的用于填充文档的代码。

      private static void FillContentControls(Dictionary<string, string> parameters, MemoryStream stream)
            {
                using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(stream, true))
                {
                    foreach (KeyValuePair<string, string> parameter in parameters)
                    {

   string contentControlTagName = parameter.Key;
                        string newValue = parameter.Value;
                        IEnumerable<XElement> contentControls = wordDoc.MainDocumentPart.GetXDocument().Descendants(sdt)
                                                                   .Elements(sdtContent)
                                                                   .Descendants(wordText)
                                                                   .Where(e => ((string)e.Ancestors(sdt)
                                                                   .Elements(sdtPr)
                                                                   .Elements(tag)
                                                                   .Attributes(tagVal).First().Value == contentControlTagName));

                        int i = 0;
                        foreach (XElement element in contentControls)
                        {

                            element.Value = (i == 0 ? newValue : String.Empty);
                            i++;
                        }

现在我想做的是对不同的值求和

Avg_exkl_moms + Tjal_exkl_moms + Prov_exkl_moms = total_exlk_moms
Avg_moms + Tjal_moms + Prov_moms = total_moms
Avg_inkl_moms + Tjal_ inkl _moms + Prov_ inkl _moms = total_ inkl _moms

然后将它们放在相应的contentControlTagName中。

关于如何解决这个问题有什么建议吗?

非常基础,创建了 3 个列表,将所有值相加然后求和。