You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ssconvert将CSV转XLSX时如何保留日期格式

解决ssconvert转换CSV到XLSX时日期格式被修改的问题

ssconvert自动解析CSV中的日期字段并变更格式,且format=preserve选项仅对文本文件生效,以下是几种可行的解决方案:

方案1:强制ssconvert以纯文本导入CSV字段

通过指定CSV导入规则,强制将日期字段当作纯文本处理,避免自动解析:

ssconvert --import-type=Gnumeric_stf:stf_csv -O "type=text" --export-type=Gnumeric_Excel:xlsx test.csv test.xlsx

如果仅需指定特定列为文本(比如第2列是日期),可以用col_types精准控制列类型:

ssconvert --import-type=Gnumeric_stf:stf_csv -O "col_types=text,text,number" --export-type=Gnumeric_Excel:xlsx test.csv test.xlsx

说明:col_types的每个值对应CSV的一列,text表示纯文本,number表示数字类型,按实际列顺序调整即可。

方案2:使用LibreOffice命令行转换(格式控制更可靠)

LibreOffice的命令行工具对CSV转XLSX的格式支持更灵活,可直接指定输入日期格式:

libreoffice --headless --convert-to xlsx --infilter="CSV:44,34,UTF8,1,1,0,false,false,false,1031,1/1/1900,d.m.Y" test.csv

参数说明:

  • 44:CSV分隔符为逗号(ASCII码)
  • 34:引号字符为双引号
  • UTF8:文件编码
  • 1:第一行是表头(无表头则改为0)
  • d.m.Y:指定输入的日期格式,确保转换后保持该显示格式

方案3:Python脚本精准控制(适合批量/复杂场景)

用pandas结合openpyxl可以完全自定义日期格式,支持两种处理方式:

方式1:将日期保存为纯文本格式

import pandas as pd

# 读取CSV,按指定格式解析日期后转成字符串
df = pd.read_csv('test.csv')
df['date_column'] = pd.to_datetime(df['date_column'], format='%d.%m.%Y').dt.strftime('%d.%m.%Y')

# 保存为XLSX
df.to_excel('test.xlsx', index=False)

方式2:保留Excel日期类型,设置显示格式为d.m.Y

import pandas as pd
from openpyxl.styles import NamedStyle

# 定义自定义日期格式
custom_date_style = NamedStyle(name='d_m_Y', number_format='DD.MM.YYYY')

# 读取并解析日期
df = pd.read_csv('test.csv', parse_dates=['date_column'], date_parser=lambda x: pd.to_datetime(x, format='%d.%m.%Y'))

# 写入XLSX并应用格式
with pd.ExcelWriter('test.xlsx', engine='openpyxl') as writer:
    df.to_excel(writer, index=False)
    worksheet = writer.sheets['Sheet1']
    # 遍历日期列(假设在B列)应用格式,跳过表头行
    for cell in worksheet['B'][1:]:
        cell.style = custom_date_style

内容的提问来源于stack exchange,提问作者Dominick Makome

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:10:25