为什么NPOI创建的单元格下拉列表总是用逗号分隔

时间:2017-04-07 16:44:26

标签: c# excel npoi

我使用NPOI(.net版本的java - Apache POI)创建了excel表。我需要添加一些下拉列表,但我发现无论我传入哪个列表,它总是用逗号分割项目值,从而创建一个新行。在任何机会,你知道如何避免这种情况发生吗? 这是我的代码

CellRangeAddressList cellRange = new CellRangeAddressList(cell.RowIndex, 
                        cell.RowIndex, cell.ColumnIndex, cell.ColumnIndex);
DVConstraint constraint = DVConstraint.CreateExplicitListConstraint(new string[]
                       {"$400","$1,900"});
HSSFDataValidation validation = new HSSFDataValidation(cellRange, constraint);
validation.SuppressDropDownArrow = false;
sheet.AddValidationData(validation);

它总是将1,900美元分成两个项目,分别为1美元和900美元,这是截图 enter image description here

1 个答案:

答案 0 :(得分:0)

在将值传递给约束时,您只需传递没有逗号的值和$ sign这样的

DVConstraint constraint = DVConstraint.CreateExplicitListConstraint(new string[]{"400","1900"});

以及格式化方法将在下拉列表中处理值的出现

  XSSFCellStyle yourCellStyle = (XSSFCellStyle)workbook.CreateCellStyle();
    XSSFDataFormat yourDataFormat = (XSSFDataFormat)workbook.CreateDataFormat();
    yourCellStyle.SetDataFormat(yourDataFormat.GetFormat("$#,###.00"));
    sheet.SetDefaultColumnStyle(col, yourCellStyle);