C# MSWord中的表对齐

C# MSWord中的表对齐,c#,ms-word,C#,Ms Word,我在word文档中生成了几个表,我的一个表的列数更多,因此它超出了我的文档页面宽度,并且其中的几列不可见,如果我试图设置其宽度,那么表中的列名将结束 我的目标是: 我希望表格在页面中自动调整,而不考虑 列 列名不应换行,即列名 应以单行显示 你真的没有办法做你想做的事,即通过改变字体大小来调整文本而不进行包装。 您必须手动计算出来。 您最多可以显式指定标题行的高度。您可以这样做: tbl.Rows[1].HeightRule = WdRowHeightRule.wdRowH

我在word文档中生成了几个表,我的一个表的列数更多,因此它超出了我的文档页面宽度,并且其中的几列不可见,如果我试图设置其宽度,那么表中的列名将结束

我的目标是:

  • 我希望表格在页面中自动调整,而不考虑 列

  • 列名不应换行,即列名 应以单行显示


  • 你真的没有办法做你想做的事,即通过改变字体大小来调整文本而不进行包装。
    您必须手动计算出来。
    您最多可以显式指定标题行的高度。您可以这样做:

               tbl.Rows[1].HeightRule = WdRowHeightRule.wdRowHeightExactly;
               tbl.Rows[1].Height = 14; 
    
    现在您可以尝试更改文本的字体大小,看看是否适合。不幸的是,你只能这么做

    一个疯狂的想法:你可以尝试创建一个类似这样的公式:
    1.创建表后获取列宽。
    2.计算标题字符串中的字符数。
    3.阅读您使用的字体规格,计算每个字母占用的空间,以及每个[space]字符占用的空间。
    4.现在,您有了所有可用数据来构建公式,以查看特定单元格的字体大小(以点为单位)。您必须遍历所有列才能执行此操作。
    5.从所有计算中选择最小字体大小,并应用于每个标题以保持一致性。
    尽管如此,这是一种脆弱的方法,很可能会失败。我怀疑你能否让它更紧密地工作


    建议:您应该称此功能为不可能。你不想让word做它不应该做的事情。

    1。您正在使用互操作吗?2.所以,如果你有100列长标题文本,你想把所有的都放在一行,然后你想拉伸一个页面吗?3.或者您希望保持页面大小不变,并且标题应该溢出。如果可能的话,你能提供你想要实现的屏幕截图吗?眼睛,我在使用interop…如果我有100列长标题文本,我希望这些列的标题文本在表中是相同的,3)页面大小应该相同..尝试一些屏幕截图..如果你的标题不合适怎么办?我们必须减少字体大小吗?说清楚,我没有得到任何关于这方面的指示,所以我现在想减少表格的字体大小..使用上面提供的2行代码u,我可以限制列名换行并显示在同一行中…是否有机会拆分表格并在其下方显示额外的列,我的意思是,如果一个表格有10列,我希望在一行中显示5列,在其下方显示5列,以便表格完全适合页面大小…@colorsbright,恐怕你不能这么做。您应该做的是创建包含5列的表。然后用标题填充两行。是的,拆分表格可能是不可能的,因此没有其他方法显示我的表格以及我页面中的所有列?也可以在代码u中提供。行[1]。HeightRule=WdRowHeightRule.wdRowHeightExactly;这是第[1]行吗?这会反映到所有表中的所有列吗?对不起,使用上面提供的2行,列名不会完全显示。如果列名为“国内增长”,则只显示国内增长,如果我将高度从14增加到24,那么“国内”将显示在一行中,并且在其下方显示“增长”。@colorsbright,是的,这正是代码所做的。它与字体大小或对齐方式无关。它只是限制行的高度