我有一个包含 2 列的 Word 表。我试图让 Word 在 column2 具有换行的长文本时不要挤压 column1。
这是预期的布局:
列 1 列 2
------- -------
1. 长文本换行
一些时间。
另一段
长文本换行。
2. 更长的文字
再次包裹。
还有一段
的长包装文本。
注意 column2 在每个单元格中有 2 个段落。不确定这是否重要,但那是必须存在的。
当表格行数达到两位数并且我以编程方式将完成的文档发送到客户端站点上的浏览器(他们将其视为下载并在 Word 中打开它)后,会发生以下情况:
列 1 列 2
------- -------
. .
. .
9. 长文本换行
一些时间。
另一段
长文本换行。
1 更长的文字
0. 再次包装。
还有一段
的长包装文本。
1 更长的文字
1. 重新包装。
还有一段
的长包装文本。
注意如何“10”。和“11”。在 column1 被包裹(因为 Word 决定压缩该列的宽度,......我认为)
我尝试增加 GridColumn 宽度(甚至增加到一个很大的值)但无济于事。Word 似乎总是将列宽重新调整为它认为最合适的大小......我认为。我在其他论坛(不是 Microsoft 网站)上读到,所有宽度设置都仅被视为“首选”。不确定这是否属实,但在这种情况下似乎已经足够了!!
我试过设置
new TableCellProperties()
{
Width = "4000", …Run Code Online (Sandbox Code Playgroud) 这是一个网络项目。我从外部来源收到部分 html 字符串。使用 XMLDocument 解析它的效果很好,除非它遇到带有嵌入引号的属性,例如下面的“样式”属性。
<span id="someId" style="font-family:"Calibri", Sans-Serif;">Some Text</span>
Run Code Online (Sandbox Code Playgroud)
似乎(但我可能是错的) LoadXml() 认为 Calibri 之前的双引号结束样式属性,而 Calibri 是另一个“令牌”(令牌是我在错误消息中得到的术语)。
var xml = new XmlDocument();
xml.LoadXml(<the html string above, properly escaped>); // <--- here is where I get the error message below
"'Calibri' is an unexpected token. Expecting white space. Line 1, position 18."
Run Code Online (Sandbox Code Playgroud)
我可以使用 Regex 来替换内部引号,但它会相当难看。而且,我很可能最终会这样做!
我想也许 HtmlAgilityPack 会有所帮助,但我找不到关于它的好的文档,我宁愿避免使用稀疏文档的 3rd 方库。
有没有办法让 LoadXml() 接受它(然后让 Attributes 集合正确解析它)?我对此不抱太大希望,但无论如何我都会把它扔在那里。或者我应该完全使用 XmlDocument 以外的另一个类?我愿意使用具有良好文档的 3rd 方库。