如何使用closedXML在excel中获取格式化的显示单元格值?

如何使用closedXML在excel中获取格式化的显示单元格值?,excel,closedxml,Excel,Closedxml,我希望获得excel中显示的值,而不是富文本,而是格式化的显示值 例如,如果值为“7/1/2015”,且此单元格采用数字格式:cell.Style.NumberFormat.format=“d”,则在excel中,此数字将显示为1 我想通过使用closedXML获得“1”,但没有成功。以下是我尝试过的一些价值: cell.Value = "7/1/2015"; cell.RichText.Text = "7/1/2015"; cell.GetString() = "7/1/2015"; cell

我希望获得excel中显示的值,而不是富文本,而是格式化的显示值

例如,如果值为“7/1/2015”,且此单元格采用数字格式:
cell.Style.NumberFormat.format=“d”
,则在excel中,此数字将显示为1

我想通过使用closedXML获得“1”,但没有成功。以下是我尝试过的一些价值:

cell.Value = "7/1/2015";
cell.RichText.Text = "7/1/2015";
cell.GetString() = "7/1/2015";
cell.GetFormattedString() = "7/1/2015";
cell.GetValue<string>() = "7/1/2015";
cell.Value=“7/1/2015”;
cell.RichText.Text=“7/1/2015”;
cell.GetString()=“7/1/2015”;
cell.GetFormattedString()=“7/1/2015”;
cell.GetValue()=“7/1/2015”;
有人知道如何做到这一点吗?
非常感谢

您是否尝试过使用
NumberFormat.Format

例如,
worksheet.Cell(rowCount,2).Style.NumberFormat.Format=“mm/dd/yyyy”


请告诉我这是否是您要找的。

您是否尝试过使用
NumberFormat.Format

例如,
worksheet.Cell(rowCount,2).Style.NumberFormat.Format=“mm/dd/yyyy”


让我知道这是不是你要找的东西。

经过一些搜索,我找到了这个:

这表明closedXML formattedstring与Excel不同,因此不会有修复。
因此,我最终为日期时间值添加了自己的自定义处理程序

经过一番搜索,我发现:

这表明closedXML formattedstring与Excel不同,因此不会有修复。 因此,我最终为日期时间值添加了自己的自定义处理程序

为了获取Excel单元格的显示值,我使用了下面的RichText属性,而不是使用cell.value属性(它给出了单元格的实际值,但没有格式化)

为了获取Excel单元格的显示值,我使用了下面的RichText属性,而不是使用cell.value属性(它给出了单元格的实际值,但没有格式化)


恐怕不行。因为我在excel中看到的是值“1”,我想得到的是“1”,而不是“7/1/2015”,恐怕不是。因为我在excel中看到的是值“1”,所以我想得到“1”而不是“7/1/2015”什么是cell.DataType?应该是DateTime。什么是cell.DataType?应该是DateTime.Correct。由于使用了.NET格式化程序,因此必须使用
%d
来获取所需的值。但在Excel中,这是行不通的。现在你必须使用另一种解决方法。正确。由于使用了.NET格式化程序,因此必须使用
%d
来获取所需的值。但在Excel中,这是行不通的。目前,您将不得不使用另一种解决方法。仅使用代码的答案通常被认为是低质量的。你能为你的答案添加一个解释吗?请添加一个注释解释你的代码,并说明为什么你的代码能满足OP的需要,或者它比你之前发布的其他答案更好。只有代码的答案通常被认为是低质量的。你能为你的答案添加一个解释吗?请添加一个注释,解释你的代码,并说明为什么你的代码能满足OP的需要,或者它比之前发布的其他答案更好。
using cXl = ClosedXML.Excel;

string cellValue, col="A";
int row=1;
cXl.IXLWorksheet ws;

cellValue = ws.Cell(row, col)
              .RichText
              .ToString();