python - 使用 Openpyxl 在 Excel 中增加日期
问题描述
我正在尝试使用 openpyxl 增加日期。这是一些示例代码:
import openpyxl
import os
import datetime
os.chdir("C:\\Personal\\Rentals\\xxxx")
wb = openpyxl.load_workbook(filename = 'Income_Receipts.xlsx', read_only=False)
sheet = wb['Sheet1']
cellreference = "B" +str(6)
cell = sheet[cellreference]
def LastRowNumber():
global sheet, cellreference, cell
i = 4
BlankRowNumber = 0
while BlankRowNumber == 0:
i = i + 1
cellreference = "B" + str(i)
cell = sheet[cellreference]
if cell.value == None:
BlankRowNumber = i
return i
def FormatDatesToNumbers(RowNumber):
global sheet, cellreference, cell, wb
#if sheet["B" + str(RowNumber)].value == "Airbnb":
sheet["I" + str(RowNumber)].number_format = "######.0"
sheet["F" + str(RowNumber)].number_format = "######.0"
wb.save('Income_Receipts.xlsx')
def AirbnbDueDates(RowNumber):
global sheet, wb
if sheet.cell(row = RowNumber, column = 2).value =="Airbnb":
DateAsFloat = sheet["F" + str(RowNumber)].value + 5
sheet["I" + str(RowNumber)] = DateAsFloat + 5
wb.save('Income_Receipts.xlsx')
LastRowToProcess = LastRowNumber() - 1
i = 4
while i <= LastRowToProcess:
i = i + 1
FormatDatesToNumbers(i)
i = 4
while i <= LastRowToProcess:
i = i + 1
AirbnbDueDates(i)
wb.save('Income_Receipts.xlsx')
如果代码有点不整洁,请原谅 - 我一直在尝试解决这个问题 - 我收到以下错误消息:
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'int'
问题是我试图将给定日期增加 5 天 - 但我不能混合datetime.datetime and ints.
我已经尝试将日期时间类型转换为 int 或 float,但这不起作用......
如果我手动打开 excel 表并将数据类型更改为整数(正如我在上面的代码中尝试做的那样),那么我的代码就可以正常工作。但是,如果相关单元格被格式化为日期,我会收到错误消息。
我认为在格式更改后保存工作表可以解决问题,但不幸的是不是......
非常感谢任何指针,
谢谢
抢
解决方案
推荐阅读
- javascript - 将基本 url 设置为外部 javascript 文件
- swift - Swift - 可重用的带有委托的 URL 请求
- python - Tkinter font.families() 函数如何获取可用字体列表?
- android - recyclerView 使用比例尺查看项目之间的不同间距
- laravel - Laravel Eloquent - 查找 A 列是 B 列子字符串的项目
- html - Eclipse 中的 Web 动态项目在 index.html 之后显示任何其他页面的错误:404
- azure - 运行 AutoML_execution 失败并出现异常 - Azure ML Studio JupyterLab
- windows - 在 Windows 7 上安装 Julia BinaryBuilder.jl 包
- amazon-web-services - 为什么我的 EC2 实例无法启动,并且没有“失败”项?
- java - 我有一个扩展 javafx stackpane 的类,并且在该类中想要创建一个菜单栏,其中包含一个带有项目的菜单