乐于分享
好东西不私藏

告别手动算时长!Python一键汇总Excel天/时/分/秒数据,再也不用加班对账(附源码)

告别手动算时长!Python一键汇总Excel天/时/分/秒数据,再也不用加班对账(附源码)

在工作中,大概率都遇到过这种崩溃时刻👇

Excel表的A列存着一堆中文格式的时长数据:1天3时20分、2时5分、10秒、3天8时……

领导一句**“把总时长统计出来”**,瞬间陷入绝望。

普通数字求和Excel一键搞定,但这种天、时、分、秒混合的中文时长,自带单位、格式不统一,Excel公式完全失效。

只能手动拆分、逐行换算、累加,几十条数据就要折腾十几分钟,还容易算错、漏算,返工率超高!

今天给大家分享一个专属办公Python脚本,完美解决这个痛点!无需复杂操作,一键读取Excel,自动解析「天/时/分/秒」,精准汇总总时长,3秒搞定人工半小时的工作量✨


01完整可直接运行源码

已优化注释、修复细节,复制即用,零基础也能上手👇

import pandas as pd
import re
from datetime import timedelta

defparse_duration(s) -> timedelta:
"""解析中文时长字符串,转换为标准时间格式,支持天/时/分/秒"""
# 处理空值、空白数据,避免报错
if pd.isna(s): return timedelta()
    s = str(s).strip()
ifnot s: return timedelta()

# 初始化时间单位
    days = hours = minutes = seconds = 0
# 正则匹配所有数字+时间单位组合
for num, unit in re.findall(r'(\d+)\s*(天|时|分|秒)', s):
        n = int(num)
if   unit == '天': days    += n
elif unit == '时': hours   += n
elif unit == '分': minutes += n
elif unit == '秒': seconds += n
return timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)

defsum_from_excel(file_path, column="时长", sheet_name=0):
"""
    批量汇总Excel中指定列的中文时长总时长
    :param file_path: Excel文件路径
    :param column: 需要统计的列名,默认“时长”
    :param sheet_name: 工作表序号,默认第一个工作表
    :return: 总时长
    """

# 读取Excel文件
    df = pd.read_excel(file_path, sheet_name=sheet_name)
# 校验列名是否存在,给出明确提示
if column notin df.columns:
        print(f" 列 '{column}' 不存在!可用列: {list(df.columns)}")
return timedelta()
# 遍历所有数据,累加总时长
    total = sum(parse_duration(v) for v in df[column])
return total

# 适配输出格式,还原中文时长展示(补全原缺失函数)
defformat_duration(td: timedelta) -> str:
"""将timedelta格式化为中文天时分秒字符串"""
    days = td.days
    hours = td.seconds // 3600
    minutes = (td.seconds % 3600) // 60
    seconds = td.seconds % 60
    res = ""
if days > 0: res += f"{days}天"
if hours > 0: res += f"{hours}时"
if minutes > 0: res += f"{minutes}分"
if seconds > 0: res += f"{seconds}秒"
return res if res else"0秒"

# ========== 核心使用方法(只需改路径!)==========
if __name__ == "__main__":
# 替换为你的Excel文件路径
    total_time = sum_from_excel("sample.xlsx", column="时长")
# 输出格式化后的总时长
    print(format_duration(total_time))  # 示例输出:44天15时43分7秒

02 脚本核心优势(办公党必存)

这款极简脚本,没有冗余功能,只为「高效汇总时长」而生:

  • 智能解析:自动识别「天、时、分、秒」任意组合格式

  • 容错性强:自动忽略空值、空白单元格,不报错、不中断

  • 精准计算:基于系统时间格式运算,无换算误差

  • 灵活适配:可自定义表格列名、工作表,适配任意Excel文件

  • 极简易用:无需复杂配置,改一下文件路径直接运行


03超简单使用教程(零基础秒会)

1、环境准备

首次使用先安装依赖库,终端执行:

pip install pandas openpyxl

2、修改2个参数即可运行

  • 文件路径:把/sample.xlsx 替换成你的Excel文件绝对路径

  • 列名:如果你的时长列不叫「时长」,修改 column="xxx" 为对应列名

3、运行效果

一键运行代码,终端直接输出格式化后的总时长,干净清晰: 示例结果:44天15时43分7秒


写在最后

办公效率的核心,从来不是“拼命加班”,而是用工具替代重复劳动

这种枯燥、易错、重复性极强的时长统计工作,交给Python一键搞定,你只需要负责核对结果,省下的时间摸鱼、提升技能都更香!

代码已经全部调试完毕,直接复制即用,收藏起来,下次统计时长直接套用✨

需要更多Excel自动化、办公提效脚本,记得关注我,持续分享零基础办公黑科技!