6
У меня проблема с настройкой разного формата в каждой ячейке, я хочу установить формат номера в тысячу разделителей и тысячный разделитель с 3 десятичными знаками, когда число не целое, вот мой код, я думаю, проблема выглядит каждый формат ячейки устанавливается последней установкой fomat для циклаNPOI настройка формата ячейки
поэтому выход должен быть таким: 12345 -> 12 345; 425 -> 425; 41,2 -> 41,2; 4578,25 -> 4 578,25
short doubleFormat = hssfOutputWorkBook.CreateDataFormat().GetFormat("#,##0.###");
short intFormat = hssfOutputWorkBook.CreateDataFormat().GetFormat("#,##0");
for (i = 0; i <= unorderedSheet.LastRowNum; i++)
{
NPOI.SS.UserModel.IRow newRow = orderedSheet.CreateRow(i);
NPOI.SS.UserModel.IRow oldRow = unorderedSheet.GetRow(i);
if (oldRow != null)
{
foreach (ICell oldCell in oldRow.Cells)
{
ICell newCell = newRow.CreateCell(mapping[n]);
switch (oldCell.CellType)
{
case CellType.NUMERIC:
newCell.SetCellType(CellType.NUMERIC);
newCell.SetCellValue(oldCell.NumericCellValue);
if (numberHasDecimals(oldCell.NumericCellValue))
{
newCell.CellStyle.DataFormat = doubleFormat;
}
else
{
newCell.CellStyle.DataFormat = intFormat;
}
break;
default:
newCell.SetCellValue(oldCell.ToString());
break;
}}}}