我正在开发一个GIS软件项目,我需要一个包含YYYY-MM-DD格式日期的列。目前,在Excel中我有3列:1列表示年份,1表示月份,1列表日期。看起来像这样:
| A | B | C |
| 2012 | 1 | 1 |
| 2012 | 2 | 1 |
| 2012 | 3 | 1 |
...etc...
我需要它看起来像这样:
| A |
| 2012-01-01|
| 2012-02-01|
| 2012-03-01|
我需要几种相同格式的工作簿,所以我认为python可能是一个有用的工具,所以我不必手动连接Excel中的所有内容。
所以,我的问题是,是否有一种简单的方法可以不仅连接这三列,还可以在月份和日期前面添加零值?
我一直在尝试使用python库openpyxl,但到目前为止还没有提出任何有用的东西。任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
如果你要留在excel中,你也可以使用excel宏脚本。如果您的年,月和日位于A
,B
和C
列中,则只需在列D
中键入此内容即可将其连接起来,然后将其格式设置为日期并调整填充。
=$A1 & "-" & $B1 & "-" & $C1
答案 1 :(得分:0)
试试这个:
def DateFromABC(self,ws):
import datetime
# Start reading from row 1
for i,row in enumerate(ws.rows,1):
sRow = str(i)
# datetime goes into column 'D'
Dcell = ws['D'+sRow]
# Set datetime from 'ABC'
Dcell.value = datetime.date(year=ws['A'+sRow].value,
month=ws['B'+sRow].value,
day=ws['C'+sRow].value
)
print('i=%s,tpye=%s, value=%s' % (i,str(type(Dcell.value)),Dcell.value ) )
#end for
#end def DateFromABC
使用Python测试:3.4.2 - openpyxl:2.4.1 - LibreOffice:4.3.3.2