Я разрабатываю бухгалтерское программное обеспечение, которое также будет создавать отчеты в формате Excel (.xls).
Я использовал NPOI почти во всех проектах, где требуется отчет Excel, без каких-либо серьезных проблем.
Но теперь я столкнулся с проблемой и не могу найти решение в Интернете.
Как видите, в середине отчета столбец «Валюта» автоматически меняет формат, неправильно форматируя валюту, границу и все в этом столбце.
Я работал над этим несколько раз, но безуспешно.
Вот код, который я использовал для создания стиля (C#):
var baseStyle = workBook.CreateCellStyle();
baseStyle.VerticalAlignment = VerticalAlignment.Top;
baseStyle.FillForegroundColor = IndexedColors.White.Index;
baseStyle.FillPattern = FillPattern.SolidForeground;
baseStyle.BorderTop = BorderStyle.Thin;
baseStyle.BorderBottom = BorderStyle.Thin;
baseStyle.BorderLeft = BorderStyle.Thin;
baseStyle.BorderRight = BorderStyle.Thin;
baseStyle.WrapText = true;
private static void SetCellValuePrice(IRow row, ICellStyle cellStyle, int colIndex, decimal value)
{
var xlCell = row.CreateCell(colIndex);
xlCell.SetCellValue(Convert.ToDouble(value));
var newStyle = row.Sheet.Workbook.CreateCellStyle();
newStyle.CloneStyleFrom(cellStyle);
newStyle.DataFormat = row.Sheet.Workbook.CreateDataFormat().GetFormat("€ #,##0.00");
xlCell.CellStyle = newStyle;
}
И пример использования (который, похоже, не вызывает проблем в других ячейках:
SetCellValue(row, baseStyle, colIndex++, data.Description);
Есть предположения? Заранее спасибо!