首先安装两个库:pip install xlrd、pip install xlwt,
1.python读excel——xlrd_2.python写excel——xlwt

1.读excel数据,包括日期等数据

  1. #coding=utf-8
  2. import xlrd
  3. import datetime
  4. from datetime import date
  5. def read_excel():
  6. #打开文件
  7. wb = xlrd.open_workbook(r'test.xlsx')
  8. #获取所有sheet的名字
  9. print(wb.sheet_names())
  10. #获取第二个sheet的表明
  11. sheet2 = wb.sheet_names()[1]
  12. #sheet1索引从0开始,得到sheet1表的句柄
  13. sheet1 = wb.sheet_by_index(0)
  14. rowNum = sheet1.nrows
  15. colNum = sheet1.ncols
  16. #s = sheet1.cell(1,0).value.encode('utf-8')
  17. s = sheet1.cell(1,0).value
  18. #获取某一个位置的数据
  19. # 1 ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
  20. print(sheet1.cell(1,2).ctype)
  21. print(s)
  22. #print(s.decode('utf-8'))
  23. #获取整行和整列的数据
  24. #第二行数据
  25. row2 = sheet1.row_values(1)
  26. #第二列数据
  27. cols2 = sheet1.col_values(2)
  28. #python读取excel中单元格内容为日期的方式
  29. #返回类型有5种
  30. for i in range(rowNum):
  31. if sheet1.cell(i,2).ctype == 3:
  32. d = xlrd.xldate_as_tuple(sheet1.cell_value(i,2),wb.datemode)
  33. print(date(*d[:3]),end='')
  34. print('\n')
  35. if __name__ == '__main__':
  36. read_excel()


运行效果
Python读写Excel表格 - 图1


2.往excel写入数据

  1. #coding=utf-8
  2. import xlwt
  3. #设置表格样式
  4. def set_stlye(name,height,bold=False):
  5. #初始化样式
  6. style = xlwt.XFStyle()
  7. #创建字体
  8. font = xlwt.Font()
  9. font.bold = bold
  10. font.colour_index = 4
  11. font.height = height
  12. font.name =name
  13. style.font = font
  14. return style
  15. #写入数据
  16. def write_excel():
  17. f = xlwt.Workbook()
  18. #创建sheet1
  19. sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True)
  20. row0 = [u'业务',u'状态',u'北京',u'上海',u'广州',u'深圳',u'状态小计',u'合计']
  21. column0 = [u'机票',u'船票',u'火车票',u'汽车票',u'其他']
  22. status = [u'预定',u'出票',u'退票',u'业务小计']
  23. for i in range(0,len(row0)):
  24. sheet1.write(0,i,row0[i],set_stlye("Time New Roman",220,True))
  25. i,j = 1,0
  26. while i <4*len(column0): #控制循环:每次加4
  27. #第一列
  28. sheet1.write_merge(i,i+3,0,0,column0[j],set_stlye('Arial',220,True))
  29. #最后一列
  30. sheet1.write_merge(i,i+3,7,7)
  31. i += 4
  32. sheet1.write_merge(21,21,0,1,u'合计',set_stlye("Time New Roman",220,True))
  33. i=0
  34. while i<4*len(column0): #控制外层循环:每次加4
  35. for j in range(0,len(status)): #控制内层循环:设置每一行内容
  36. sheet1.write(i+j+1,1,status[j])
  37. i += 4
  38. #创建sheet2
  39. sheet2 = f.add_sheet(u'sheet2',cell_overwrite_ok=True)
  40. row0 = [u'姓名',u'年龄',u'出生日期',u'爱好',u'关系']
  41. column0 = [u'UZI',u'Faker',u'大司马',u'PDD',u'冯提莫']
  42. #生成第一行
  43. for i in range(0,len(row0)):
  44. sheet2.write(0,i,row0[i],set_stlye('Times New Roman',220,True))
  45. #生成第一列
  46. for i in range(0,len(column0)):
  47. sheet2.write(i+1,0,column0[i],set_stlye('Times New Roman',220,True))
  48. f.save('data.xls')
  49. if __name__ == '__main__':
  50. write_excel()


在data.xls种生成了sheet1和sheet2:
Python读写Excel表格 - 图2

Python读写Excel表格 - 图3
https://www.cnblogs.com/chengxuyuanaa/p/12060400.html