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。它与单元格的格式化无关,与内容无关。
我在 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。它与单元格的格式化无关,与内容无关。