【问题标题】:SSconvert convets date to YYYY-MM-DD irrespective of xlsx date formatSSconvert 将日期转换为 YYYY-MM-DD,而不考虑 xlsx 日期格式
【发布时间】:2021-09-05 15:44:31
【问题描述】:

我正在使用 ssconvert 将 xlsx 转换为 csv。其中一列具有日期字段,因此当我将其转换为 csv 日期列值时已转换为 YYYY-MM-DD

输入:

Name Date
Test 05/08/2021

命令:

ssconvert test.xlsx  test.csv

输出:

Name,Date
Test,2021-08-05

预期输出:

Name,Date
Test,05/08/2021 

【问题讨论】:

  • 在对此question re: different date format in ssconvert output 的评论中,OP 提到从raw (-O '... format=raw') 切换到preserved (-O '... format=preserved') 输出,我假设这又取决于格式应用于(电子表格)单元格
  • 无论您之后对数据做什么,让您想要05/08/2021 而不是2021-08-05,请考虑将其更改为使用2021-08-05,因为05/08/2021 是模棱两可的(可能是8 月5 日或5 月 8 日,具体取决于您所在的国家/地区)并且无法按字母顺序排序。
  • @markp-fuso 格式选项仅在输出格式为 txt 时有效。就我而言,它是 csv
  • @EdMorton 我需要转换后的 csv 格式的相同数据
  • @user13000875 是的,我从您的问题中了解到这一点。我建议您更改接下来使用 CSV 的任何内容,以便您不需要需要那种模棱两可/无法排序格式的数据,并且可以使用更好/标准的 YYYY-MM-DD日期格式。

标签: ssconvert


【解决方案1】:

尝试使用 sed:

sed -i -Ee 's#([0-9]{4})-([0-9]{2})-([0-9]{2})#\3/\2/\1#g' test.csv

【讨论】:

  • SSconvert 已经将文件转换为带有格式更改的 .csv。
  • @user13000875,通过SSconvert转换后,应用sed命令将日期转换为您的预期输出
  • “它不工作”是最糟糕的问题陈述。想象一下,当你生病时打电话给你的机械师修理你的车或打电话给你的医生,而你告诉他们的只是“它不工作”。鉴于“它不工作”,没有人可以帮助您解决任何问题。在就软件问题寻求帮助时,您必须以何种方式“无法正常工作”(例如错误输出、无输出、错误消息、核心转储等)告诉我们,我们才能为您提供帮助。
  • @EdMorton 我运行了上面的命令,但我看不到从 ssconvert 生成的 csv 中的任何更改。所以从 SSconvert 生成的 CSV 和从上面的命令生成的 CSV 是相同的。日期列值没有变化
  • -i 在此答案中没有使用参数,仅适用于 GNU sed。如果您使用的是 BSD sed,则需要将其更改为 -i'' 或其他内容以指定备份文件名,即使它为空(如果不完全正确,请阅读手册页或谷歌)。您必须使用 GNU 或 BSD sed 才能使 -E 工作,并且 -i 不会产生错误消息。
【解决方案2】:

这应该可以工作:

ssconvert --export-type=Gnumeric_stf:stf_assistant -O "format=preserve" test.xlsx test.csv

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 2022-01-25
    • 2012-03-05
    • 2023-03-15
    相关资源
    最近更新 更多