Thanks for your sample code and some details.
Well, your code is Ok but I suspect your underlying data in the column’s cell might be of string type and not numeric data. Take an example here. When you use Cell.PutValue("-123"), it would be inserted as string type and not as numeric data type into the cell. But when you use Cell.PutValue(-123), now it is entered as numeric data type into the cell.
For your information, I used the following sample code to test your scenario/ case a bit, it works fine here. When I open the output files (XLSX into MS Excel and PDF into Acrobat reader), both shows right (formatted) data.
Workbook wb = new Workbook();
//Input some negative number into A1 cell.
int colIndex = 0;
style = wb.CreateStyle();
style.Custom = “#,##0
”; //Negative numbers in parenthesis with red color
flag = new StyleFlag();
flag.NumberFormat = true;
wb.Worksheets.Cells.ApplyColumnStyle(colIndex, style, flag);