首先,简单介绍一下EXECL中工作簿和工作表的区别:
工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET)。
import xlrd # 设置路径 path = 'E:/input.xlsx' # 打开execl workbook = xlrd.open_workbook(path) # 输出Excel文件中所有sheet的名字 print(workbook.sheet_names()) # 根据sheet索引或者名称获取sheet内容 Data_sheet = workbook.sheets()[0] # 通过索引获取 # Data_sheet = workbook.sheet_by_index(0) # 通过索引获取 # Data_sheet = workbook.sheet_by_name(u'名称') # 通过名称获取 print(Data_sheet.name) # 获取sheet名称 rowNum = Data_sheet.nrows # sheet行数 colNum = Data_sheet.ncols # sheet列数 # 获取所有单元格的内容 list = [] for i in range(rowNum): rowlist = [] for j in range(colNum): rowlist.append(Data_sheet.cell_value(i, j)) list.append(rowlist) # 输出所有单元格的内容 for i in range(rowNum): for j in range(colNum): print(list[i][j], '\t\t', end="") print() # 获取整行和整列的值(列表) rows = Data_sheet.row_values(0) # 获取第一行内容 cols = Data_sheet.col_values(1) # 获取第二列内容 # print (rows) # print (cols) # 获取单元格内容 cell_A1 = Data_sheet.cell(0, 0).value cell_B1 = Data_sheet.row(0)[1].value # 使用行索引 cell_C1 = Data_sheet.cell(0, 2).value cell_D2 = Data_sheet.col(3)[1].value # 使用列索引 print(cell_A1, cell_B1, cell_C1, cell_D2) # 获取单元格内容的数据类型 # ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error print('cell(0,0)数据类型:', Data_sheet.cell(0, 0).ctype) print('cell(1,0)数据类型:', Data_sheet.cell(1, 0).ctype) print('cell(1,1)数据类型:', Data_sheet.cell(1, 1).ctype) print('cell(1,2)数据类型:', Data_sheet.cell(1, 2).ctype) # 获取单元格内容为日期的数据 date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode) print(type(date_value), date_value) print('%d:%d:%d' % (date_value[0:3]))
3:创建excel并写入数据
import xlwt def set_style(name, height, bold=False): style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 font.name = name font.bold = bold font.color_index = 4 font.height = height style.font = font return style def write_excel(path): # 创建工作簿 workbook = xlwt.Workbook(encoding='utf-8') # 创建sheet data_sheet = workbook.add_sheet('demo') row0 = [u'字段名称', u'大致时段', 'CRNTI', 'CELL-ID'] row1 = [u'测试', '15:50:33-15:52:14', 22706, 4190202] # 生成第一行和第二行 for i in range(len(row0)): data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True)) data_sheet.write(1, i, row1[i], set_style('Times New Roman', 220, True)) # 保存文件 # workbook.save('demo.xls') workbook.save(path) if __name__ == '__main__': # 设置路径 path = 'E:/demo.xls' write_excel(path) print(u'创建demo.xls文件成功')
再看一个例子:
转载:Ryan in C++
基本的write函数接口很简单:
"htmlcode">
""" 设置单元格样式 """ import xlwt def set_style(font_name, font_height, bold=False): style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 font.name = font_name # 'Times New Roman' font.bold = bold font.color_index = 4 font.height = font_height borders = xlwt.Borders() borders.left = 6 borders.right = 6 borders.top = 6 borders.bottom = 6 style.font = font style.borders = borders return style # 写excel def write_excel(output_path): f = xlwt.Workbook() # 创建工作簿 ''' 创建第一个sheet: sheet1 ''' sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) # 创建sheet row0 = [u'业务',u'状态',u'北京',u'上海',u'广州',u'深圳',u'状态小计',u'合计'] column0 = [u'机票',u'船票',u'火车票',u'汽车票',u'其它'] status = [u'预订',u'出票',u'退票',u'业务小计'] # 生成第一行 for i in range(0, len(row0)): sheet1.write(0, i, row0[i], set_style('Times New Roman', 220, True)) # 生成第一列和最后一列(合并4行) i, j = 1, 0 while i < 4*len(column0) and j < len(column0): sheet1.write_merge(i, i+3, 0, 0, column0[j], set_style('Arial', 220, True)) # 第一列 sheet1.write_merge(i, i+3, 7, 7) # 最后一列"合计" i += 4 j += 1 sheet1.write_merge(21,21,0,1,u'合计',set_style('Times New Roman',220,True)) # 生成第二列 i = 0 while i < 4*len(column0): for j in range(0,len(status)): sheet1.write(j+i+1, 1, status[j]) i += 4 f.save(output_path) if __name__ == '__main__': write_excel('E:/demo.xls') # 保存文件.这里如果是.xlsx的话会打不开。
注意:如果对一个单元格重复操作,会引发error。所以在打开时加cell_overwrite_ok=True解决
table = file.add_sheet('sheet name',cell_overwrite_ok=True)
生成的demo.xls效果如下:
总结
以上所述是小编给大家介绍的Python3 读、写Excel文件的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 叶丽仪.1992-仙鹤神针电视剧原声音乐专辑【星传真】【WAV+CUE】
- 陈柏宇.2011-QUINQUENNIUM【SONY】【WAV+CUE】
- 《51首热门当红歌曲 十大顶级发烧女声 3CD》[WAV+CUE][1.6GB]
- 《赵传 深受摇滚迷青睐的台湾音乐人 约定》[WAV+CUE][320MB]
- 《庄心妍 实力唱将 发烧音乐精选集》[WAV+CUE][380MB]
- [音展纪念碟]2006年《TAA台湾第十六届国际HI-ENDHI-FI音响展》2cd[WAV]
- 中国音乐地图之听见西藏山歌牧歌酒歌2020[WAV分轨]
- 王宏伟2017-永远的红飘带[太平洋影音][WAV+CUE]
- 费翔.1997-NOW现在【第一中国】【WAV+CUE】
- 新格合唱团.1981-我唱你和2辑(滚石新格民歌系列)【新格】【WAV+CUE】
- 陈柏宇.2011-QUINQUENNIUM【SONY】【WAV+CUE】
- 雨果唱片-《金唛系列-蔷薇依韵琼瑶》WAV
- 陈百强《凝望(2012华纳LPCD45限量版)[DMI]》[WAV整轨]
- 模拟之声慢刻CD《徐小凤45周年》[德国母带][低速原抓WAV+CUE]
- 《庄心妍 实力唱将 发烧音乐精选集》[WAV+CUE][380MB]