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

时间:2017-09-20 03:12:25

标签: c# excel openxml-sdk

我在C#中使用OpenXML电子表格包将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 Numberchange data type (format) of Excel Cell 其回答已存在于SO上。

在我的情况下,单元格执行转换为Excel工作表中的数字格式。我可以使用公式=Type(Cell)找到Excel单元格的类型,如果单元格类型是数字,则返回1。如图所示,最后一列(列名为Type of Cell)使用=Type(cell)公式进行评估,该公式为C列返回1,但它仍显示在General中如图中突出显示的那样。

我在这里做错了吗?或者这本身就是Excel中的一个问题?

Numeric cells appear as General

1 个答案:

答案 0 :(得分:3)

您误解了Type功能的作用。它返回值的类型,而不是单元格的格式。

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