python转化excel数字日期为标准日期操作

"python转化excel数字日期为标准日期操作"的完整实例教程如下:

一、背景知识

在Excel中,日期被存储为数值类型,为1900年1月1日到某个日期日期之间的天数。例如,2019年9月15日,在Excel中对应的数值为43741。

在Python中,要将这个数值转化为标准日期,需要用到datetime模块。

二、实现步骤

  1. 导入所需模块。需要导入datetime、xlrd和xlwt模块。其中,xlrd用于读取Excel文件,xlwt用于将数据写入Excel文件。
import datetime
import xlrd
import xlwt
  1. 打开Excel文件并读取数据。使用xlrd模块的open_workbook()函数打开需要读取的Excel文件,并利用sheet_by_index()方法选定需要读取的工作表。
workbook = xlrd.open_workbook('example.xlsx')
sheet = workbook.sheet_by_index(0)
  1. 将Excel中的日期数据转换为Python中的datetime类型。使用datetime模块的fromordinal()和strftime()方法将Excel中的日期数值转换为Python中的datetime对象。
excel_date = sheet.cell_value(row, col)
py_date = datetime.date.fromordinal(datetime.datetime(1900, 1, 1).toordinal() + int(excel_date) - 2)
  1. 将Python中的datetime转换为字符串。使用strftime()方法将datetime对象转换为字符串。
py_date_str = py_date.strftime('%Y-%m-%d')
  1. 将数据写入Excel文件。使用xlwt模块的Workbook()、add_sheet()和write()方法将数据写入Excel文件。
py_date_cell = row + 1, col + 1
sheet.write(*py_date_cell, py_date_str)
  1. 关闭Excel文件。使用workbook.close()方法关闭Excel文件。
workbook.close()

三、示例说明

示例1:将Excel中的日期数据转化为标准日期,并输出到控制台

import datetime
import xlrd

# 打开Excel文件
workbook = xlrd.open_workbook('example.xlsx')
sheet = workbook.sheet_by_index(0)

# 获取第2行第2列的单元格
row, col = 1, 1
excel_date = sheet.cell_value(row, col)

# 将Excel中的日期数值转换为Python中的datetime对象
py_date = datetime.date.fromordinal(datetime.datetime(1900, 1, 1).toordinal() + int(excel_date) - 2)

# 将datetime对象转换为字符串并输出到控制台
py_date_str = py_date.strftime('%Y-%m-%d')
print(py_date_str)

# 关闭Excel文件
workbook.close()

在该示例中,我们通过读取example.xlsx文件中第2行第2列的单元格的数据,将该单元格中的Excel数字日期转换为Python标准日期格式,并输出到控制台。

示例2:将Excel中的日期数据转化为标准日期,并将转换后的数据写入新的Excel文件中

import datetime
import xlrd
import xlwt

# 打开原始Excel文件
workbook = xlrd.open_workbook('example.xlsx')
sheet = workbook.sheet_by_index(0)

# 新建写入Excel文件
new_workbook = xlwt.Workbook()
new_sheet = new_workbook.add_sheet('new_sheet')

# 遍历Excel中所有数据,并将Excel数字日期转换为Python标准日期格式,然后写入新的Excel文件中
for row in range(sheet.nrows):
    for col in range(sheet.ncols):
        cell = sheet.cell(row, col)
        if cell.ctype == xlrd.XL_CELL_DATE:
            excel_date = cell.value
            py_date = datetime.date.fromordinal(datetime.datetime(1900, 1, 1).toordinal() + int(excel_date) - 2)
            py_date_str = py_date.strftime('%Y-%m-%d')
            new_sheet.write(row, col, py_date_str)
        else:
            new_sheet.write(row, col, cell.value)

# 保存新的Excel文件
new_workbook.save('new_data.xls')

# 关闭Excel文件
workbook.close()

在该示例中,我们读取了原始Excel文件example.xlsx中的所有数据,并将其中的Excel数字日期转换为Python标准日期格式。然后,将转换后的数据与原始数据一起写入新的Excel文件new_data.xls中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python转化excel数字日期为标准日期操作 - Python技术站

(1)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Python正则表达式的七个使用范例详解

    以下是“Python正则表达式的七个使用范例详解”的完整攻略: 一、Python正则表达式的基本语法 正则表达式是一种用于匹配文本的模式,它可以用来查找、替换和验证文本。在Python中,我们可以使用re模块来操作正则表达式。 正则表达式的基本语法如下: 字符:匹配指定的字符。 字符集:匹配指定的字符集。 元字符:匹配特殊的字符或字符集。 量词:指定匹配的次…

    python 2023年5月14日
    00
  • Python中按键来获取指定的值

    当我们使用Python编写程序获取键盘输入时,可以使用Python内置的input()函数获取用户输入的字符串。但是当我们希望获取按键对应的值时,就需要使用第三方库来实现。 常见的获取按键对应值的第三方库有两种: keyboard pynput 这两种库都提供了相应的API以供我们使用,下面分别介绍它们的用法。 使用keyboard库 安装keyboard库…

    python 2023年5月13日
    00
  • 如何在 Python 的条件语句中使用循环?

    【问题标题】:How to use loops in conditional statements in Python?如何在 Python 的条件语句中使用循环? 【发布时间】:2023-04-05 18:17:02 【问题描述】: 我想检查一个列表是否只包含一个特定的元素(在我的例子中是 None) 我相信有一种 Pythonic 的方法,我试过了:if…

    Python开发 2023年4月6日
    00
  • Python pickle类库介绍(对象序列化和反序列化)

    当我们需要在Python程序中,将一个Python对象直接持久化至磁盘中,或是从磁盘中加载一个Python对象时,我们可以使用pickle类库。其实,pickle类库实现的是Python对象的序列化和反序列化。 接下来,我们将会详细讲解pickle类库的一些相关概念、函数的基本使用方法以及示例。 1. 序列化和反序列化 所谓序列化,即是将一个Python对象…

    python 2023年6月2日
    00
  • python PyAutoGUI 模拟鼠标键盘操作和截屏功能

    使用PyAutoGUI模块可以实现对鼠标和键盘的操作,以及对屏幕进行截屏等功能。下面将详细讲解如何使用该模块进行操作: 安装PyAutoGUI模块 在终端或命令行中输入以下命令,即可安装PyAutoGUI模块: pip install pyautogui 鼠标操作 获取鼠标当前位置 使用pyautogui.position()函数可以获取鼠标当前的位置,该函…

    python 2023年5月19日
    00
  • python爬虫面试宝典(常见问题)

    让我来为你详细讲解“python爬虫面试宝典(常见问题)”的攻略: 一、前言 “python爬虫面试宝典(常见问题)”是一本介绍Python爬虫技术的书籍,主要针对正在求职或者即将要求职的爬虫工程师。本书主要从入门到进阶,覆盖了爬取、解析、存储等几个方面。下面,我将按照这几个方面为你逐一讲解。 二、爬取 对于爬虫工程师而言,爬取是第一步。本书介绍了多种爬取技…

    python 2023年5月13日
    00
  • python中partial()基础用法说明

    Python中partial()基础用法说明 Python中的partial函数是一个非常有用的函数,可以帮助我们基于现有的函数,创建新的函数。它可以理解为“部分应用”一个函数,就是将部分参数传入一个函数,但并不立即执行它,而是返回一个新的函数,这个新函数可以继续接收剩余的参数,并最终返回结果。 它的基本语法 下面是partial函数的基本语法格式: fun…

    python 2023年6月5日
    00
  • 让你的Python代码实现类型提示功能

    实现Python代码类型提示可以让代码更易于阅读和维护,并提高代码的可靠性和健壮性。下面是实现Python代码类型提示的完整攻略。 使用注解实现类型提示 在Python 3.x及以上版本中,可以使用注解(Annotation)来实现类型提示。注解是对变量或函数参数的类型和返回值类型进行说明的方式,注解一般放在变量名或函数参数的后面,用冒号(:)分隔变量名和类…

    python 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部