C# Excel单元格类型为';数字';但它仍然显示为';概述';

C# Excel单元格类型为';数字';但它仍然显示为';概述';,c#,excel,openxml-sdk,C#,Excel,Openxml Sdk,我正在使用C#中的OpenXML电子表格包将数据表转换为excel。在代码中,我编写此代码是为了用数字类型附加单元格: public void MakeNumericCell(string cellReference, string cellStringValue, Row excelRow) { // Add a new Excel Cell to our Row Cell cell = new Cell() { CellReference = cellReferen

我正在使用C#中的OpenXML电子表格包将
数据表
转换为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);

 }
请注意,我不是在问或谁的答案已经存在

在我的例子中,单元格在excel工作表中转换为数字格式。我可以使用公式
=type(cell)
查找Excel单元格的类型,如果单元格类型为数字,则返回1。如图所示,最后一列(列名称为
单元格类型
)使用
=Type(Cell)
公式计算,该公式为
C
列返回1,但它仍然显示在
General
中,如图中突出显示

我做错什么了吗?还是Excel本身存在问题


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


如果不使用格式,而将单元格内容更改为“test”,则类型将更改为2。如果将其更改为“true”,则类型将返回为4。它与单元格的格式无关,单元格的格式与内容无关。

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


如果不使用格式,而将单元格内容更改为“test”,则类型将更改为2。如果将其更改为“true”,则类型将返回为4。它与单元格的格式无关,单元格的格式与内容无关。

Oh..这意味着单元格格式和单元格类型完全不同?你能分享一下如何将“格式”从“常规”修改为“数字”吗?你已经找到了“格式”下拉列表(上面写着“常规”)。单击它并选择其他选项。很抱歉,我不清楚。我想用C#编程更改它。不是直接从Excel。请尝试阅读和尝试来自和的建议。第二个更改为百分比,但您可以将其修改为数字格式。您可以很容易地找到如何开始录制宏,然后更改下拉列表:)或检查。哦..这意味着单元格格式和单元格类型完全不同?你能分享一下如何将“格式”从“常规”修改为“数字”吗?你已经找到了“格式”下拉列表(上面写着“常规”)。单击它并选择其他选项。很抱歉,我不清楚。我想用C#编程更改它。不是直接从Excel。请尝试阅读和尝试来自和的建议。第二个选项更改为百分比,但您可以将其修改为数字格式。您可以很容易地找到如何开始录制宏,然后更改下拉列表:)或检查。除此之外,您还可以使用
=单元格(“格式”,A2)
等来检查单元格的格式。用于参考和检查。除答案外,您可能需要使用
=单元格(“格式”,A2)
等来检查单元格的格式。供参考和检查。