我想在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";
有人知道如何实现这个目标吗? 非常感谢!
答案 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();