Числовой формат в документе Word - PullRequest
3 голосов
/ 13 января 2020

У меня есть несколько полей в документе Word с инструктивным текстом, например, таким:

{MERGEFIELD MyField1 \ # "000"}

I ' Я читаю эти поля, используя Open XML SDK, как показано здесь , и заменяю их некоторыми данными.
Я применяю числовой формат, указанный в поле, к моим данным, например так :

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

В большинстве случаев это прекрасно работает, но теперь я получил документ, который имеет "xxx" в качестве числового формата, и при использовании вышеупомянутого я получаю "xxx" для fieldValue.

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

Я видел это. NET не поддерживает это в Настраиваемая цифра c в формате , но Word поддерживает это таким образом, что удаляет все цифры, которые идут после "x". msgstr "символы ставят на место.
Так что для вышесказанного должно получиться" 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");
...