Python写入Excel

2021/10/23 22:13:19

本文主要是介绍Python写入Excel,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 前言:前面系列篇已经讲解过如何使用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如下:,结果显示价格更新成功。

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




 



这篇关于Python写入Excel的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程