C#NPOI设置单元格样式为文本/string1-19被格式化为date/禁用任何格式化

我创build一个excel,当我写一些值的例子1-19,当我打开Excel文档,我看到1-19,但是如果我点击它然后Excel试图格式化为一个date

有没有办法迫使工作表不使用任何公式或格式? 我已经检查过,数据格式是string。

private void Test1(ref ISheet worksheet, string[] array, IWorkbook workbook, int iRow, XSSFFont font2) { var format = HSSFDataFormat.GetBuiltinFormats(); ICellStyle _TextCellStyle = workbook.CreateCellStyle(); _TextCellStyle.DataFormat = workbook.CreateDataFormat().GetFormat("@"); IRow file = worksheet.CreateRow(iRow); int iCol = 0; for (int y = 0; y < array.Length; y++) { ICellStyle style = workbook.CreateCellStyle(); style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index; //style.DataFormat = HSSFDataFormat. ICell cell = file.CreateCell(iCol, CellType.String); cell.SetCellValue(array[y]); style.SetFont(font2); // cell.CellStyle = style; var getst = cell.CellType; cell.CellStyle = _TextCellStyle; iCol++; getst = cell.CellType; } } 

即使按照文档使用正确的格式string“@”,数据仍保持“常规”格式。 有些时候库方法在NPOI中不起作用,所以你必须尝试不同的方法。

你可以尝试其中之一

  _TextCellStyle.DataFormat = workbook.CreateDataFormat().GetFormat("text"); //Instead of "@" 

或者在编写excel文件(比如“1-19”)时为数据添加单引号