Excel 单元格类型是 'Numeric' 但它仍然显示为 'General'

The Excel cell type is 'Numeric' but still it appears as 'General'

我在 C# 中使用 OpenXML spreadsheet 包将 datatable 转换为 excel。在代码中,我写这个是为了附加带有数字类型的单元格:

 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);

 }

请注意,我不是在问 How to convert Text cell to Number or change data type (format) of Excel Cell 答案已经存在于 SO 上。

在我的例子中,单元格 do 转换为 excel sheet 中的数字格式。如果单元格类型是数字,我可以使用公式 =Type(Cell) 找到 Excel 单元格的类型,其中 returns 1。如图所示,最后一列(列名是 Type of Cell)使用 =Type(cell) 公式计算,其中 returns 1 用于 C 列,但它仍然出现在General 如图中突出显示的那样。

我是不是做错了什么?还是 Excel 本身的问题?

您误解了 Type 函数的作用。它 returns 值的类型,而不是单元格的格式。

如果您保留格式,并将单元格内容更改为 "test,",则类型将更改为 2。如果您将其更改为 "true",则类型将返回为 4。它与单元格的格式化无关,与内容无关。