c# - una - tipos de alineacion en word
¿Cómo se obtiene texto en una tabla de Word para alinear verticalmente? (6)
Estoy creando un documento de Word sobre la marcha como un proyecto de Office Word de C # VS 2010 para un cliente que desea generar un documento que permita reducir el número apropiado de ubicaciones signatarias para un acuerdo en particular. Hay una tabla que deberá generarse con suficientes filas y luego, en el documento, tengo que producir bloques prefabricados para información personal por firmante.
Ahora estoy trabajando en la parte de la tabla y tengo casi todo lo que quiero, pero el texto en todas las celdas está alineado verticalmente arriba. He visitado CADA sitio en Internet COMPLETO en los últimos días para obtener información actualizada sobre la automatización de Word que es actual para .Net 4, VS 2010 y Office 2010. Tengo una sintaxis que compila sin error pero falla alinear abajo como deseo. Incluso he apuñalado con IntelliSense para ver si podía encontrar otra solución.
Este código se enfoca en una sola fila:
tbl.Range.Rows [1] .Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalBottom; Esto se ejecuta pero el texto permanece lleno de helio.
¿Algún asistente de automatización de Word por ahí?
El texto probablemente esté centrado verticalmente, pero incluye un espaciado de párrafo que no sea "0". Por lo tanto, Word está viendo la línea adicional como texto adicional que debe incluirse en el centrado vertical.
Para evitar esto, simplemente resalte el texto que desea que se centre verticalmente (o la tabla completa si eso es lo que desea). Luego vaya a "Diseño de página" y reduzca el "Espaciado" "Después" a "0". Si también tiene un espacio en la parte superior del texto, deberá reducir el "Espaciado" "Antes" a "0" también. Sin espacio antes o después del texto, el texto actual se centrará.
Esto es para una vieja pregunta, pero me encontré con el mismo problema y una solución para esto. Agrega esto a tu mesa:
tbl.Range.ParagraphFormat.SpaceAfter = 1; // change the 1 to how much space you want extra in your cell
Lo siguiente funcionó para mí en Word 2011 para Mac: nada más sugerido en numerosos sitios me pareció cambiar la alineación de celdas verticales. Encontré esto por prueba y error. Destaqué las celdas que quería alinear verticalmente en la parte inferior derecha y cambié el espacio entre líneas (en mi caso era 1.5 para la tabla) a 1 para esas celdas. Finalmente funcionó. Espero eso ayude.
No pude reproducir el problema Este código funciona bien:
using Microsoft.Office.Interop.Word;
class Program
{
static void Main(string[] args)
{
DocumentClass document = new DocumentClass();
object defaultTableBehavior = null, autoFitBehavior = null;
Table tbl = document.Content.Tables.Add(document.Content, 2, 2, ref defaultTableBehavior,
ref autoFitBehavior);
tbl.Rows[2].Cells[2].Range.InsertAfter("This is a test.");
tbl.Rows[2].Cells[2].Range.ParagraphFormat.SpaceAfter = 0f;
tbl.Rows[2].Cells.Height = 50f;
tbl.Range.Rows[2].Cells.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalBottom;
}
}
Sospecho que debe haber algún otro problema en juego, como el espaciado de párrafos posterior, o quizás se ha seleccionado el rango incorrecto.
Resalte texto dentro de la tabla -> vaya a Opciones de espaciado de línea -> en la sección Espaciar antes / después, configure Antes y Después para poner a cero px (o igual).
Todas las opciones de alineación ahora deberían funcionar.
Solo si alguien está siguiendo esta publicación, mi texto también se organizó en la parte superior de las celdas. Entonces, para mí, el siguiente hizo lo que necesitaba de una manera rápida
oTable.Range.ParagraphFormat.SpaceAfter = 6;
oTable.Range.ParagraphFormat.SpaceBefore = 6;
El espacio se puede ajustar si es necesario.