ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python写入Excel

2021-10-23 18:35:12  阅读:254  来源: 互联网

标签:xlsx sheet wb Python Excel 写入 表单 range row


 前言:前面系列篇已经讲解过如何使用Python读取Excel表格中的数据,并对数据进行读取后的处理。今天简单介绍下Python写入Excel的方法并举例说明如何应用。

表单的增、删、写、存操作


# 新建工作簿
wb = openpyxl.Workbook()
print(wb)

sheet = wb.active
print(sheet.title)

# 重命名表单
sheet.title = 'happy2021'
print(wb.get_sheet_names) # 这种方法会出现弃用警告,推荐下面的方法
print(wb.sheetnames)

# 保存工作簿
wb.save('original.xlsx')

# 新建表单并指定索引值
# 说明:表单的索引位置从0开始,如果创建表单的时候不指定索引值,默认在现有的表单后继续创建。
wb.create_sheet('first.xlsx', index=0)
wb.create_sheet('second.xlsx', index=1)
print(wb.sheetnames)

# 删除表单
wb.remove_sheet(wb.get_sheet_by_name('first.xlsx')) # 这种方法会出现弃用警告,推荐下面的方法
wb.remove(wb['first.xlsx']) # 括号内是表单对象
del wb['second.xlsx'] # 括号内是表单名称
print(wb.sheetnames)
wb.save('temp1.xlsx') # 进行增、删、改操作最后都需要保存下

# 往单元格中写入值
# 说明:这点和往字典中增加键值对的方法类似,可进行对比学习。
wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = 'Hello python'
print(sheet['A1'].value)

Python写入Excel的几个实例


ws1 = wb.create_sheet('range names')
for row in range(40):
ws1.append(range(17)) # append()内传入的是每一行对应的各列的取值范围,可以是列表、字典、元组、range等

ws2 = wb.create_sheet('List')
rows = [
['Number', 'Batch1', 'Batch2'],
[2, 40, 30],
[3, 45, 60],
[4, 36, 55],
[5, 66, 88],
[6, 78, 99]
]
for row in rows:
ws2.append(row)

ws3 = wb.create_sheet('Data')
for row in range(5, 30):
for col in range(15, 50):
ws3.cell(row=row, column=col, value=get_column_letter(col)) # 将列对应的数字转换成字符串作为单元格的值

wb.save('write_excel.xlsx')

# 上面3张表单生成以后效果如下:

实际应用场景

下面给定了一张超市农产品的价格表,要完成对表单中部分农产品的价格更新。
文件下载链接:https://pan.baidu.com/s/1ly0C3anyNvBDbkb4omv_OA 
提取码:ey30
# 待更新的农产品名称(大蒜、芹菜、柠檬)及对应的价格,我们存储在一个字典对象中:price_update = {'Garlic': 3.17, 'Celery': 1.19, 'Lemon': 1.17}
# 解题思路:遍历整个农产品价格表,判断每一行取出的农产品名称是否存在price_update字典中,存在则更新对应价格;不存在,则跳过这一行。
wb = openpyxl.load_workbook(r'D:\zxt\produceSales.xlsx')
ws = wb.active
price_update = {'Garlic': 3.17, 'Celery': 1.19, 'Lemon': 1.17}
for rowNum in range(2, ws.max_row+1):
# 取出表单中每一行第一列的农产品名称
produce = ws.cell(row=rowNum, column=1).value # 这里produce是农产品的意思

# 判断农产品产品名称是否存在于待更新的字典中
if produce in price_update.keys():
ws.cell(row=rowNum, column=2).value = price_update[produce]
pass

# 将更新后的文件的另存为updateProduceSales.xlsx,防止程序出错,覆盖原文件数据
wb.save('updateProduceSales.xlsx')

# 查看更新后的updateProduceSales.xlsx如下:,结果显示价格更新成功。

  最后,喜欢的朋友点赞、推荐下,后续精彩内容持续更新中,敬请关注!






 

标签:xlsx,sheet,wb,Python,Excel,写入,表单,range,row
来源: https://www.cnblogs.com/zxt518/p/15449184.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有