texto poner para negritas negrita negrilla formato como comando aplicar c# npoi cell-formatting

para - poner un string en negrita c#



NPOI crea una celda que contiene texto en negrita y no en negrita (5)

Afortunadamente, puedes hacer eso ... Mira este código:

Font f1=wb.CreateFont(); f1.Color=HSSFColor.RED.index; ws.GetRow(1).GetCell(0).RichStringCellValue.ApplyFont(1, 5, f1);

Estoy usando NPOI para generar Excel desde la aplicación Asp.Net MVC y funciona muy bien con texto simple, pero ahora se me ha solicitado que agregue formato y tengo problemas donde necesito tener una sola celda con texto en negrita seguido de texto en negrita . p.ej

Este texto en negrita - este texto normal

Sé que puedo darle un estilo único a una celda, pero esto no servirá de nada y no puedo ver de ninguna manera darle a una celda un texto enriquecido preformateado.

La única solución posible que se me ocurre es crear dos celdas por separado y combinarlas, pero ¿eso significará que el formato se perderá?

¿Hay alguna forma de hacer esto que me haya perdido en NPOI?


Después de una buena cantidad de investigación, parece que no puede hacer esto dentro de NPOI, ya que no proporciona la funcionalidad necesaria para permitirle configurar el formateo de un texto específico dentro de una celda, como intenté hacer.


Parece que la respuesta de Ernie Banzon ya no funciona exactamente como se describe, posiblemente debido a un cambio en el espacio de nombres (¿o de hecho estoy usando el espacio de nombres de HSSF?)

// usings using NPOI.HSSF.UserModel; // IWorkbook doc IFont font = doc.CreateFont(); font.FontHeightInPoints = 11; font.FontName = "Arial"; font.Boldweight = (short)FontBoldWeight.BOLD;


Puedes probar esto:

var font = reportWorkbook.CreateFont(); font.FontHeightInPoints = 11; font.FontName = "Calibri"; font.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.BOLD; var cell = headerRow.CreateCell(0); cell.SetCellValue("Test Bold"); cell.CellStyle = reportWorkbook.CreateCellStyle(); cell.CellStyle.SetFont(font);


Usa esta opcion

font.Boldweight = (short)700;//FontBoldWeight.Bold;

La sintaxis actual debería ser como la de abajo. Pero ambas sintaxis no funcionan en algún momento

font.Boldweight = FontBoldWeight.Bold ; Or font.Boldweight = (short)FontBoldWeight.Bold;

FontBoldWeight es tipo enum, que después de la conversión de tipos puede que no funcione en algún momento. Como solución alternativa, si escribe casta o utiliza directamente el valor real de enumeración, funciona. A continuación se muestra la declaración de FontBoldWeight. Eso dejará las cosas claras.

**public enum FontBoldWeight { None = 0, Normal = 400, Bold = 700, }**