【解决方案】Excel如何给日期单元格设置自定义格式
评论
收藏

【解决方案】Excel如何给日期单元格设置自定义格式

经验分享
小曼
2024-09-29 09:57·浏览量:806
小曼
发布于 2024-09-29 09:56更新于 2024-09-29 09:57806浏览

背景:

想要设置Excel里面的单元格格式为"yyyy-mm-dd hh:mm:ss",如下图所示:

之前社区有个帖子, excel如何给日期单元格设置自定义格式 ,里面提到可以提前设置好Excel模板或者将单元格格式改成文本。那有没有一种方法既要设置成目标格式,也不想要提前设置模板呢?

解决方案:

可以用python实现,运行前先将Excel关掉。

from openpyxl import load_workbook

def set_cell_format(file_path, sheet_name, write_area, cell_format_string):
    # 加载现有的工作簿
    wb = load_workbook(file_path)

    # 选择工作表
    ws = wb[sheet_name]

    # 检查 write_area 是否包含数字
    if ":" in write_area:
        # 处理范围,如 "A1:A10"
        for row in ws[write_area]:
            print(row)
            for cell in row:
                cell.number_format = cell_format_string
    elif "," in write_area:
        # 处理多列
        for col_name in write_area.split(","):
            column = ws.column_dimensions[col_name]
            column.number_format = cell_format_string
    else:
        #处理单列
        column = ws.column_dimensions[write_area]
        column.number_format = cell_format_string
    # 保存工作簿到文件
    wb.save(file_path)

file_path = r"D:\desktop\测试.xlsx"
sheet_name = "Sheet1"
#写入区域,如果是区域,则用冒号分隔,如 "A1:B12"
#如果是多列,则写列名,用逗号分隔,如 "A,C,E"
#如果是单列,则直接写列名,如 "A"
write_area = "A,C,E"
cell_format_string = "yyyy-mm-dd hh:mm:ss"

set_cell_format(file_path, sheet_name, write_area, cell_format_string)


收藏2
全部评论1
最新
发布评论
评论