首页 > 解决方案 > Word 文档中的数字格式

问题描述

我在 Word 文档中有一些带有说明性文本的字段,例如这个:

{ MERGEFIELD MyField1 \# "000" }

我正在使用 OpenXML SDK 读取这些字段,如此处所示并用一些数据替换它们。
我将字段中指定的数字格式应用于我的数据,如下所示:

string fieldFormat = "000";
int data = 1234;
string fieldValue = data.ToString(fieldFormat);

在大多数情况下,这很好用,但是现在我得到了一个具有“xxx”作为数字格式的文档,并且在使用上述格式时,我得到了 .xxx 的“xxx” fieldValue

string fieldFormat = "xxx";
int data = 1234;
string fieldValue = data.ToString(fieldFormat); // Problem!

我看到 .NET 不支持自定义数字格式,但 Word 以一种方式支持这一点,即删除“x”符号位置之后的任何数字。
因此,对于上述情况,它应该导致“234”。我怎么能在 C# 中做到这一点?

编辑,添加了一些额外的例子:

int number = 1158;

string format1 = "x";
string format2 = "xx";
string format3 = "x#";
string format4 = "x,###";
string format5 = "x,xxx";
string format6 = "x##.00";
string format7 = "xxxxxxx.00";

Console.WriteLine("(number + format1) should result to: 8");
Console.WriteLine("(number + format2) should result to: 58");
Console.WriteLine("(number + format3) should result to: 58");
Console.WriteLine("(number + format4) should result to: 1,158");
Console.WriteLine("(number + format5) should result to: 1,158");
Console.WriteLine("(number + format6) should result to: 158.00");
Console.WriteLine("(number + format7) should result to: 1158.00");

标签: c#ms-wordnumber-formattingopenxml-sdk

解决方案


推荐阅读