代码之家  ›  专栏  ›  技术社区  ›  Lucas

ClosedXML-设置单元格的数据类型无效

  •  5
  • Lucas  · 技术社区  · 7 年前

    one 但有点不同。 SetDataType方法无效。 例如,我有价值 string dps = "3.12.02"

    当我这样做时: ws.Cell(1, 1).Value = dps; ws.Cell(1, 1).SetDataType(XLCellValues.Text);

    并保存文件,然后在Excel中打开,它仍然会将其转换为一些类似rubish的内容 37593 我试着把它放在设定值前后,没有变化。

    有人能帮我吗?

    3 回复  |  直到 7 年前
        1
  •  11
  •   Francois Botha    7 年前

    这个 .Value 方法尝试猜测正在设置的值的类型。在您的情况下,该值是有效的(即可解析的) DateTime ,内部存储为数字。

    要明确设置值而不进行猜测,请使用:

    string dps = "3.12.02";
    ws.Cell(1, 1).SetValue(dps);
    
        2
  •  2
  •   AnthonyVO    5 年前

    // What I tried without success.
    cell.Clear(XLClearOptions.All);
    cell.SetValue<DateTime>((DateTime)cellValue);
    cell.SetDataType(XLDataType.DateTime);
    

    在我用Excel重新创建电子表格之前,我所做的任何事情都无法解决这个问题。

    // This worked just fine on a proper Excel file
    cell.SetValue((DateTime)cellValue);
    

    当我用LibreOffice打开并保存电子表格时,正确设置列类型的功能就消失了。

        3
  •  1
  •   Goran Mottram    7 年前

    虽然我不能告诉你为什么它不起作用,但一个简单的方法是在字符串前面加一个撇号( '

    string dps = "'3.12.02";
    ws.Cell(1, 1).Value = dps;