从C#中的Windows窗体中删除Microsoft Word表

时间:2016-03-13 13:45:42

标签: c# json winforms ms-word

我的应用程序使用JSON字符串将文本发送到API,然后将其放入实时聊天中。该接口使用WinForms编写,并使用常规textBoxes并从WPF spellBoxes导入。发生的主要问题是当用户复制/粘贴MS Word格式的表时,API不接受JSON字符串。我的猜测是Word表中的一些隐藏字符或标签会破坏JSON字符串。我的问题是:如何从字符串中删除所有格式?

以下是我在发送API之前清理内容的当前代码:private string theCleaner(string text) { if (text.Equals(String.Empty) || text.Equals(null)) { return ""; } else { return text.Replace('\u2018', '\'') .Replace('\u2019', '\'') .Replace('\u201c', '"') .Replace('\u201d', '"')
.Replace("\"", "\\\"") .Replace('\u0009', ' ') .TrimEnd() .TrimStart() .Normalize(); } } private string theScrubber(string toughGreese) { if (toughGreese.Equals(String.Empty) || toughGreese.Equals(null)) { return ""; } else { return Regex.Replace(toughGreese, "[^\\\"\\s\\r\\n%#&\\w\\.@-]", ""); } }

1 个答案:

答案 0 :(得分:1)

这是通过清除所有MS Word格式字符串结尾来解决的。

因此,添加这三个语句解决了这个问题:

.Replace("\r\n", "<br>").Replace("\r","<br>").Replace("\n","<br>");

额外的\ r和\ n可能是不必要的,但你永远不能告诉MS决定改变他们的格式将来会破坏你的代码。