3

我正在使用 Python-Excel xlwt 创建一个空白 Excel 电子表格来填写电子表格。我想指定一定范围的单元格应该是日期格式的。我正在做类似的事情:

datestyle = xlwt.XFStyle()
datestyle.num_format_str = "YYYY-MM-DD"
ws.write(row, column, "", datestyle)

但这有点过于规范了。人们可能正在粘贴数据,这意味着如果格式不完全匹配,就会出现问题。电子表格通常擅长发现和理解以各种格式粘贴的日期。我希望电子表格能够在不受特定输入格式限制的情况下执行此操作。

我只想说'这个单元格是一个日期'而不是强加一种格式。这是可行的吗?

4

2 回答 2

2

您指定的格式定义了日期的显示方式,但不会影响 excel 解释输入日期的方式。如果您的格式是 YYYY-MM-DD,用户仍然可以输入 5/21/2008,字符串将转换为它的日期值(39589),然后以您指定的格式显示:“2008-01-21”

于 2011-06-29T17:35:34.287 回答
2

您不能指定一个单元格是一个日期而不是强加格式,不能使用 xlwt 也不能​​使用其他任何东西,包括 Excel 本身。两个原因:

(1) 您不能指定单元格是任何类型。它是用户键入或粘贴的任何内容。您可以将其格式化为日期,但他们可以输入文本。

(2) “日期”在 Excel 中不是数据类型。Excel 只知道文本、浮点数、布尔值 (TRUE/FALSE)、错误(#DIV/0 等)和“空白”(格式化但没有数据)。日期单元格只是具有日期格式的数字单元格。

“我可以用 xlwt 做 X 吗?”的一般回答。问题:首先尝试用 Excel / OpenOffice Calc / Gnumeric 做 X。如果你不能,那么 xlwt 也不能​​。

于 2011-06-29T20:27:28.487 回答