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

时间:2017-08-23 08:09:56

标签: excel closedxml

enter image description here我想在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";

有人知道如何实现这个目标吗? 非常感谢!

3 个答案:

答案 0 :(得分:0)

您是否尝试过使用NumberFormat.Format

离。 worksheet.Cell(rowCount, 2).Style.NumberFormat.Format = "mm/dd/yyyy";

请告诉我这是否正在寻找。

答案 1 :(得分:0)

经过一番搜索后,我发现了这一点:https://github.com/ClosedXML/ClosedXML/issues/270

表示closedXML formattedstring与Excel不同,并且不会有修复。 所以我最终为日期时间值添加了自己的自定义处理程序。

答案 2 :(得分:0)

  

要获取Excel单元格的显示值,我在RichText属性下面使用了此值,而不是使用Cell.Value属性(该属性给出了单元格的实际值而不进行格式化)。

using cXl = ClosedXML.Excel;

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

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