2010-02-16 19 views
6

Estoy creando y rellenando una tabla de Word 2007 en C#. Cuando veo el resultado en Word, cada celda tiene espacio vertical adicional anexado después del texto. En Word esto se puede ajustar a través del "diseño de página"/Párrafo/Espaciado, donde el valor inicial es 10pt.Eliminar espaciado tras párrafo en Word 2007 con VSTO

--------------------------------------------------- 
| Text...  | Text.... | More text...   | 
|    |   |      | <- Extra spacing 
--------------------------------------------------- 
|    |   |      | 

¿Cómo se puede cambiar esto con VSTO?

He intentado grabar una macro, esperando algunas respuestas en el código VB, no parece responder al cambio del valor de espaciado.

No he podido encontrar nada relacionado en la documentación de VSTO en MSDN.

Editar: Usando una plantilla de Word, puedo marcar el área que estoy poblando y establecer el espaciado a 0. Se hereda entonces a través de mi mesa - por lo tanto funciona por ahora. Pero aún así, sería bueno poder controlar el espaciado entre C# y no confiar en la herencia en Word.

Respuesta

14

Según Jose Anton Bautista la solución es similar a la siguiente:

Word.Document currentDocument; 
currentDocument.Paragraphs.SpaceAfter = 0; 

O

Word.Table table; 
table.Range.Paragraphs.SpaceAfter = 0; 

Esto funciona muy bien y para mí, muestra donde también puedo acceder a varias propiedades de los elementos del documento.

+0

Excelente. Este "Range.Paragraphs.SpaceAfter = 0" también funciona para paragragh por separado: si tenemos más párrafos dentro del documento, no es necesario solicitar el documento. podemos aplicar esto a cada párrafo también –

0

He utilizado el estilo integrado "Tabla de cuadrícula" para eliminar el estilo de párrafo espaciado en las células (El valor por defecto Word 2007, Insertar> Tabla utiliza el mismo estilo):

Word.Document Doc = Globals.ThisDocument.Application.ActiveDocument; 
Word.Table WordTable = Doc.Tables.Add(curSel.Range, 8, 5, ref missing, ref missing); 

//Table Style 
object tableStyle = "Table Grid"; 
WordTable.set_Style(ref tableStyle); 
+0

@ Mike: He intentado la solución, pero me da una excepción en WordTable.set_Style (ref TableStyle) ;. Pero encontré otra solución. – Chau

+1

La excepción probablemente provenga del estilo "Table Grid" que no se encuentra. Advertiría en contra de realizar cambios de formato individuales en cada tabla y, en su lugar, crear un estilo de tabla para todas las tablas con el mismo formato. –

0

También es posible que tenga que configurar LineSpacingRule

myTable.Range.Paragraphs.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle; 
Cuestiones relacionadas