2016-04-08 2 views
0

Я заполнение ячейки таблицы построчно с контентом RichTextBox с этим кодом:Удаление межстрочного интервала между абзацами в документе Word в C#

int length = richTextBoxes[0].Lines.Length; 
for (int index = 1; index < length; index++) { 
    table.Cell(3, 2).Range.Text += richTextBoxes[0].Lines[index].ToString(); 
} 

Но он автоматически переходит странную строку, прежде чем вставить текст , и есть это огромное расстояние между абзацами между каждой строкой, и мне интересно, можно ли его удалить.

Спасибо

+0

Поскольку я перечитал это, мне пришло в голову, что проблема, которую вы видите, может быть вызвана * стилем *, применяемым к таблице. Если это так, тогда было бы более эффективным (и правильным из Word POV) применить правильный стиль к таблице/ячейкам, чем применить форматирование напрямую. (Также добавили это в мой «Ответ») –

+0

Ваш последний ответ был достаточно хорош для меня, но это могло бы помочь другим! Так что спасибо – UnderPaidIntern

ответ

0

Для изменения межстрочного интервала абзацев в текстовом ячейке:

table.Cell(3,2).Range.Paragraphs.LineSpacing 

Если это не имеет желаемого эффекта вы должны убедиться, что расстояние между строками является проблемой, а не какой-то код символа, который Слово ISN «Я имею дело с тем, как вы ожидаете. Введите строк в ячейке таблицы, не нажимая Enter, и посмотрите, показывают ли они то же поведение, что и ваш код. Если нет, то ваш код импортирует что-то, что вам нужно «отключить» ...

Проблема, которую вы видите, может быть вызвана стилем, применяемым к таблице. Если это так, тогда было бы более эффективным (и правильным из Word POV) применить правильный стиль к таблице/ячейкам, чем применить форматирование напрямую.

0

Я считаю, что вы используете Microsoft.Office.Interop.Word сборки?

Как насчет того, чтобы установить свойство LineSpacing из Paragraph интерфейс? Это тип с плавающей точкой.

Он может быть установлен после того, как LineSpacingRule свойство устанавливается в одно из следующих значений: wdLineSpaceAtLeast, wdLineSpaceExactly или wdLineSpaceMultiple.

Надеюсь, это поможет.

+0

Да, я использую Interop.Word. Большое спасибо Alex, но document.Paragraphs.LineSpacing предназначен для всего документа, не так ли? Есть ли решение только для конкретной ячейки таблицы? – UnderPaidIntern

+0

@UnderPaidIntern Не можете ли вы получить экземпляр определенного абзаца? Как и в самом Word, вы можете установить интервал между строками для данного абзаца. Вы должны иметь возможность делать то же самое в коде. Btw классное прозвище – Alex

+1

Спасибо, мне удалось найти решение! – UnderPaidIntern

Смежные вопросы