在Python和openpyxl中使用小时和分钟-Excel格式与字符串和整数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python和openpyxl中使用小时和分钟-Excel格式与字符串和整数相关的知识,希望对你有一定的参考价值。

希望有一些openpyxl或一般Excel经验的人可以提供帮助。我正在一个项目中,记录飞行时间,并生成一个月内完成飞行的Excel电子表格。

到目前为止,我已经使用PySimpleGUI创建了一个不错的前端,并使它能够正常工作,因此它将每个航班的详细信息存储为字典,其中的键是诸如机组人员姓名,飞机注册等之类的术语。每个航班分别存储在当月的字典中。

为了确保飞行时间有意义,我使用了数字微调器,这样他们就不会得到废话。每种飞行时间类型都记录为2个键,一个为小时,一个为分钟。因此,字典有一个部分,其中包括:

'-firstPilotHours-': 1,
'-firstPilotMins-': 30,
'-captainHours-': 1,
'-captainMins-': 30,

..依此类推。通过将它们转换为字符串并在中间用冒号将它们连接起来,我设法将它们放入Excel中:

ws1.cell(row=sortieIdent, column=9).value = str(currentMonth[sortie]["-captainHours-"]) + ":" + str(currentMonth[sortie]["-captainMins"])

...因此在Excel中显示为“ 1:30”,这是我为此目的运行手动Excel文件时用来输入数据的方式。

单元格的数字格式设置为“ [h]:mm”,以便我可以对小时和分钟值进行计算,因此可以显示每月的总数,依此类推。

但是,这就是我被困住的地方。我认为是因为我将它们转换为字符串,即使它们在Excel中看起来像“ 1:30”,它们在Excel中的处理方式也像字符串而不是整数。用它们不可能执行任何计算。如果我在Excel中用“ 1:30”改写它们,则它们将移至该列的右侧并开始表现为数字。

我想不出任何方法可以将它们输入Excel并对其进行计算。谁能帮忙?

我曾考虑过将小时和分钟设置为单独的列,但是我也无法弄清楚如何以这种方式进行计算。我还考虑过将它们现在显示为字符串,但是在Python中进行计算。但我不知道如何在Python中进行正确的“小时和分钟”计算。

答案

希望这可以使您对Excel的日期/时间处理有所了解。

对于代表日期/时间的给定十进制数字...小数的左侧表示自1/0/1900以来的天数。十进制数字的右侧代表时间。

实际示例:

[我写这篇文章的日期时间是:2020年5月24日下午8:02

Excel的基本值为:43975.8347222222

自1/0/1900以来的43975天= 2020年5月24日

。8347222222 = 24小时的小数部分

打下基础(如果不清楚,请告诉我)。现在我们可以解决您的示例。

向Excel的世界表达1:30。我们需要将1小时30分钟转换为十进制天

您的1:30 = Excel中的.0625

要显示.0625,您可以将单元格的格式设置为“ hh:mm”或使用自定义格式设置的任何格式。

自定义格式=向用户显示值.0625 = Excel用于计算的基础值

希望这会在以后进一步推动您。

以上是关于在Python和openpyxl中使用小时和分钟-Excel格式与字符串和整数的主要内容,如果未能解决你的问题,请参考以下文章

5 分钟掌握 openpyxl 操作:Python 轻松处理 Excel

5 分钟掌握 openpyxl 操作:Python 轻松处理 Excel

使用 openpyxl 将数据写入现有的 Excel 工作表

python3中的日期时间到十进制小时和分钟

10分钟学会用Python轻松玩转Excel

10分钟学会用Python轻松玩转Excel