Pregunta

Actualmente estoy usando algo como esto para insertar una cadena en línea en una celda:

new Cell() 
{ 
    CellReference = "E2", 
    StyleIndex = (UInt32Value)4U, 
    DataType = CellValues.InlineString, 
    InlineString = new InlineString(new Text( "some text")) 
}

Pero \n No funciona insertar salto de línea, ¿cómo puedo hacer esto?


La respuesta

new Cell(
         new CellValue("string \n string")
        ) 
    { 
        CellReference = "E2", 
        StyleIndex = (UInt32Value)4U, 
        DataType = CellValues.String         
    }
¿Fue útil?

Solución

Trate CellValues.String en lugar de CellValues.InlineString.

Otros consejos

Es necesario hacer dos cosas:

1.) Marcar la célula como "texto ajustado". Puede hacer esto en la hoja de cálculo con la mano si está utilizando una hoja de cálculo existente como plantilla. Simplemente haga clic en la celda (s) y seleccione " Formato de celdas .. ", haga clic en el " Alineación " y marque el " Ajustar texto " casilla de verificación.
O ... puede configurar el CellFormat mediante programación. Si usted tiene un objeto CellFormat llamado " cf ", que haría algo como esto:

cf.ApplyAlignment = true;//Set this so that Excel knows to use it.
if (cf.Alignment == null)//If no pre-existing Alignment, then add it.
  cf.Alignment = new Alignment() { WrapText = true };
Alignment a = cf.Alignment;
if (a.WrapText == null || a.WrapText.Value == false)
  a.WrapText = new BooleanValue(true);//Update pre-existing Alignment.

2) No debe usar "\ n", en lugar usted debe utilizar el estándar de retorno de carro + salto de línea combinación: "\ r \ n"
Si está mezclando los dos (es decir, "\ n" sin precedente "\ r" y "\ r \ n"), esto debe solucionarlo antes de poblar el valor de la celda:

sHeaderText = sHeaderText.Replace("\r\n", "\n").Replace("\n", "\r\n");

Yo mismo no uso CellValues.String o incluso CellValues.InlineString .
En lugar construyo mis celdas de texto utilizando CellValues.SharedString (al igual que lo hace Excel). Opiniones de Bool utilizo " CellValues.Boolean ", y para todos los demás (numéricos y las fechas) no me marco de la celda Tipo de datos para cualquier cosa -. porque eso es lo que hace Excel cuando miro el margen de beneficio que crea

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top