安装两个库:pip安装xlrd, pip安装xlwt
1。python读excel——xlrd
2。python写excel——xlwt
1。读excel数据,包括日期等数据
#编码=进口xlrd utf - 8
进口从datetime datetime
进口日期def read_excel ():
#打开文件
wb=xlrd.open_workbook (r 'test.xlsx ')
#获取所有表的名字
打印(wb.sheet_names ())
#获取第二个表的表明
sheet2=wb.sheet_names () [1]
# sheet1索引从0开始,得到sheet1表的句柄
sheet1=wb.sheet_by_index (0)
rowNum=sheet1。nrows
colNum=sheet1。ncols
# s=sheet1.cell (1,0) .value.encode (utf - 8)
s=sheet1.cell (1,0)。值
#获取某一个位置的数据
# 1 ctype: 0空,1弦,2号,3日,4布尔,5误差
打印(sheet1.cell (1、2) .ctype)
打印(s)
#打印(s.decode (utf - 8))
#获取整行和整列的数据
#第二行数据
row2=sheet1.row_values (1)
#第二列数据
cols2=sheet1.col_values (2)
# python读取excel中单元格内容为日期的方式
#返回类型有5种
我的范围(rowNum):
如果sheet1.cell(我,2)。ctype==3:
d=xlrd.xldate_as_tuple (sheet1.cell_value(我,2),wb.datemode)
打印(日期(* d[3]),结束=")
打印(“\ n”)
if __name__==癬_main__”:
read_excel () ~
运行效果
2。往excel写入数据
#编码=进口xlwt utf - 8
#设置表格样式
def set_stlye(名字、身高、大胆=False):
#初始化样式
风格=xlwt.XFStyle ()
#创建字体
字体=xlwt.Font ()
字体。大胆大胆=
字体。colour_index=4
字体。身高=身高
font.name=
样式名称。字体=字体
#返回风格写入数据
def write_excel ():
f=xlwt.Workbook ()
#创建sheet1
sheet1=f.add_sheet (u 'sheet1 cell_overwrite_ok=True)
row0=[u的业务”,你的状态”,你“北京”,你的上海”,你“广州”,你“深圳”,你的状态小计”,你“合计”)
column0=[u”机票”,你的船票”,你的火车票”,u的汽车票”,你的其他的)
状态=[u的预定的,你的出票”,你“退票”,你的业务小计”)
我的范围(0,len (row0)):
sheet1。写(0,我,row0[我],set_stlye(“新罗马”,220年,真的))
我,j=1, 0
当我& lt; 4 * len (column0): #控制循环:每次加4
#第一列
sheet1.write_merge(我+ 3,0,0,column0 [j], set_stlye(“天线”,220年,真的))
#最后一列
sheet1.write_merge(我+ 3、7、7)
我+=4
sheet1。write_merge(21日21日0 1 u的合计”,set_stlye(“新 罗马",220年,真正的)
i=0
i<4 * len (column0): #控制外层循环:每次加4
j的范围(0,len(地位)):#控制内层循环:设置每一行内容
sheet1.write (i + j + 1, 1,状态[j])
我+=4
#创建sheet2
sheet2=f.add_sheet (u 'sheet2’, cell_overwrite_ok=True)
row0=[u的姓名’,你的年龄”,你的出生日期”,你“爱”好,你的关系的)
column0=[u 'UZI”、u 'Faker”u“大司马”,u 'PDD ' u '冯提莫的]
#生成第一行
我的范围(0,len (row0)):
sheet2。写(0,我,row0[我],set_stlye (“Times New Roman”, 220年,真的))
#生成第一列
我的范围(0,len (column0)):
sheet2。写(i + 1 0 column0[我],set_stlye (“Times New Roman”, 220年,真的))
f.save (data.xls)
if __name__==癬_main__”:
write_excel () ~
在数据。xls种生成了sheet1和sheet2