Excel单元格types是“数字”,但仍显示为“常规”

我正在使用C#中的OpenXML电子表格包将datatable转换为excel。 在代码中我写这个附加单元格与数字types:

  public void MakeNumericCell(string cellReference, string cellStringValue, Row excelRow) { // Add a new Excel Cell to our Row Cell cell = new Cell() { CellReference = cellReference, DataType=CellValues.Number }; CellValue cellValue = new CellValue(cellStringValue); cell.Append(cellValue); excelRow.Append(cell); } 

请注意,我不是问如何将文本单元格转换为数字或更改数据types(格式)的Excel单元格,其答案已经存在于SO上。

在我的情况下,单元格转换为Excel表格中的数字格式。 我可以通过使用formula =Type(Cell)findExcel单元格的types,如果单元格types是数字,则返回1。 如图所示,最后一列(列的名称是Type of Cell )是使用=Type(cell)公式对C列返回1来计算的,但是它仍然以图像中突出显示的Generalforms出现。

我在这里做错了什么? 或者这是Excel本身的问题?

数字单元格显示为常规

你误解了Type函数的作用。 它返回值的types,而不是单元格的格式。

如果单独保留格式,并将单元格的内容更改为“test”,则types将更改为2.如果将其更改为“true”,则该types将返回为4.它与格式无关的细胞,这是独立的内容。