当前位置: 首页 > 面试题库 >

如何将python datetime.datetime转换为Excel序列号

田鹤轩
2023-03-14
问题内容

我需要将日期转换为Excel序列号,以用于编写的数据处理脚本。通过在OpenOffice Calc工作簿中使用日期,我可以推断出“ 1-Jan 1899
00:00:00”映射到数字零。

我编写了以下函数,以将python datetime对象转换为Excel序列号:

def excel_date(date1):
    temp=dt.datetime.strptime('18990101', '%Y%m%d')
    delta=date1-temp
    total_seconds = delta.days * 86400 + delta.seconds
    return total_seconds

但是,当我尝试一些示例日期时,数字与在Excel(以及OpenOffice Calc)中将日期格式设置为数字时得到的数字不同。例如,在Python中测试“
2009-03-20”可获得3478032000,而excel将序列号呈现为39892。

上面的公式有什么问题?

*注意:我使用的是Python 2.6.3,因此无法访问datetime.total_seconds()


问题答案:

Excel的“序列日期”格式似乎实际上是自1900-01-00以来的
数,其分数部分是一天的一小部分,基于http://www.cpearson.com/excel/datetime。
htm。(我猜该日期实际上应该被认为是1899-12-31,因为不存在一个月的第0天)

因此,似乎应该是:

def excel_date(date1):
    temp = dt.datetime(1899, 12, 30)    # Note, not 31st Dec but 30th!
    delta = date1 - temp
    return float(delta.days) + (float(delta.seconds) / 86400)


 类似资料:
  • 问题内容: 我在具有Excel Date序列号Date的csv文件中得到了名为DateOfBirth的列 例子: 当我在excel中格式化单元格时,这些将转换为 我需要在SSIS或SQL中进行此转换。如何做到这一点? 问题答案: 在SQL中:

  • 问题内容: 我想将输入的Excel文件转换为输出XML文件。 如果有人在Java中对如何获取输入Excel文件以及如何将XML写入输出有任何解决方案,请提供任何代码或URL或任何其他解决方案。 谢谢, 米沙尔·沙(Mishal Shah) 问题答案: 查看jexcel或Apache POI库以读取Excel文件。 创建XML文件很简单,只需将XML直接写到文件中,或附加到XML文档中,然后使用标准

  • 问题内容: 如何使用模块将带有定界符的CSV文件转换为XLS(Excel工作表)? 问题答案: 好吧,你去…

  • 问题内容: 谁能指导我如何使用PHP将XLS转换为CSV? 我有一个包含文档列表的Excel电子表格,我想使用PHP将其转换为CSV格式。 问题答案: 也许您可以开始使用PHP阅读XLS。 然后,使用主逻辑输出所需的内容(您的情况下为csv)。 祝好运,

  • 问题内容: 我用过这种方法 它正在打印“ jsonObject为null”。 “ error:nil”有什么问题吗? 我没有使用任何网址或连接方法。 我有一个json文件,我想在表中显示它。 问题答案: 请尝试以下代码。

  • 如何将按排序顺序转换为而不更改()?我们希望保留和。 将2,3,1添加到将其排序为1,2,3。从创建一个将具有2,3,1的顺序。中的和方法也将具有2,3,1的顺序。我猜这与的实现有关。