我在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 Number或change data type (format) of Excel Cell 其回答已存在于SO上。
在我的情况下,单元格执行转换为Excel工作表中的数字格式。我可以使用公式=Type(Cell)
找到Excel单元格的类型,如果单元格类型是数字,则返回1。如图所示,最后一列(列名为Type of Cell
)使用=Type(cell)
公式进行评估,该公式为C
列返回1,但它仍显示在General
中如图中突出显示的那样。
我在这里做错了吗?或者这本身就是Excel中的一个问题?
答案 0 :(得分:3)
您误解了Type功能的作用。它返回值的类型,而不是单元格的格式。
如果您单独保留格式,并将单元格的内容更改为" test,"类型将更改为2.如果您将其更改为" true"该类型将返回为4.它与单元格的格式无关,它与内容无关。