2016-12-14 16 views
1

Ii применил NPOI для генерации превосходства. Пока все хорошо, за исключением того, что я хочу смело провести ряд.C# NPOI rowStyle

Я попытался:

tmpRow.RowStyle = workbook.CreateCellStyle(); 
tmpRow.RowStyle.SetFont(boldFont); 

Однако, ничего не изменилось.

В то время как я могу это сделать, установив его один за другим:

ICellStyle boldFontCellStyle = workbook.CreateCellStyle(); 
IFont boldFont = workbook.CreateFont(); 
boldFont.IsBold = true; 
boldFontCellStyle.SetFont(boldFont); 
for (int p= 0; p <= 12; p++) 
{ 
    tmpRow.GetCell(p).CellStyle = boldFontCellStyle; 
} 
//tmpRow.RowStyle = workbook.CreateCellStyle(); 
//tmpRow.RowStyle.SetFont(boldFont); 

Я хотел бы знать, есть ли способ, чтобы установить весь стиль строки в NPOI?

Спасибо.

+0

Должна быть обеспечена возможность использования свойств, которые вы использовали, как показано [здесь] (https://github.com/tonyqus/npoi/blob/02f080d3ee37e4f04a999be32604b1cb6bf3e649/examples/xssf/SetRowStyle/Program.cs). У меня была такая же проблема при обновлении существующей книги, которая была исправлена ​​путем вызова sheet.CreateRow (n) вместо GetRow (n), который, казалось, имел отдельные стили ячеек, которые переопределяли стиль строки. – MetalMichael

ответ

0

Сгенерируйте стиль, установите его и примените к нему. Что-то вроде этого:

var rowStyle = workbook.CreateCellStyle(); 
rowStyle.SetFont(boldFont); 

tmpRow.RowStyle = rowstyle; 
2

Попробуйте для Роу стайлинга

XSSFFont defaultFont = (XSSFFont)workbook.CreateFont(); 
defaultFont.FontHeightInPoints = (short)10; 
defaultFont.FontName = "Arial"; 
defaultFont.Color = IndexedColors.Black.Index; 
defaultFont.IsBold = true; 

XSSFCellStyle yourCellStyle = (XSSFCellStyle)workbook.CreateCellStyle(); 
yourCellStyle.SetFont(defaultFont); 

var row = sheet.CreateRow(0); 
row.RowStyle = yourCellStyle; 

Ниже один был для стиля ячейки

XSSFFont yourFont = (XSSFFont)workbook.CreateFont(); 
    yourFont.FontHeightInPoints = (short)12; 
    yourFont.FontName = "Arial";    
    yourFont.IsBold = true; 
    yourFont.IsItalic = false; 
    yourFont.Boldweight = 700; 
    XSSFCellStyle yourStyle = (XSSFCellStyle)workbook.CreateCellStyle(); 
    yourStyle.SetFont(yourFont); 
    for (int p= 0; p <= 12; p++) 
     { 
     row.Cells[p].CellStyle = yourStyle; 
     } 
+0

Какой смысл в том, что вы справляетесь с моим кодом: S – SKLTFZ

+0

Я только скопировал фрагмент «for» для вашего удобства. Выше этого я предоставил вам свой работоспособный код. вы можете попробовать, если хотите. –

+0

Дело в том, что если я не возражаю, чтобы добавить стиль ячейки один за другим, мой код тоже мог бы работать, я ищу что-то вроде стиля строки, а не cellStyle :) – SKLTFZ