开发者

python写入Excel表格的方法详解

目录
  • 一、写入Excel数据
  • 二、项目:更新一个电子表格
    • 2.1 案例需求
    • 2.2 案例源码
  • 总结

    一、写入Excel数据

    週用openpyxl也提供了一些方法写入数据,这意味着你的程序可以创建和编辑电子表格文件。利用python创建一个包含几千行数据的电子表格是非常简单的。

    週用openpyxl.Workbook()函数,创建一个新的空Workbook对象

    本章节所有代码均在jupyter notebook中完成

    创建一个新的工作簿对象

    import openpyxl
    wb = openpyxl.Workbook()
    wb
    

    <openpyxl.workbook.workbook.Workbook at 0x22473ff4da0>

    获取工作表名称

    # 查看默认的工作表的名称
    wb.sheetnames
    

    [‘Sheet’]

    给工作表设置名称

    # 查看默认的工作表的名称
    wb.sheetnames
    

    [‘跟进记录表’]

    保存工作表

    wb.save('.编程客栈/data/第一个工作簿.xlsx') # 需要给路径地址
    

    python写入Excel表格的方法详解

    创建和删除工作表

    • 利用create_sheet 和del语法,可以在工作簿中添加或删除工作表,
    • 在工作簿中添加或删除工作表之后,记得调用save()方法来保存变更。

    创建sheet

    wb = openpyxl.load_workbook('./data/第一个工作簿.xlsx')
    wb.create_sheet(title='销售记录')
    

    <Worksheet “销售记录”>

    wb.sheetnames

    [‘跟进记录表’, ‘销售记录’]

    wb.create_sheet(index=1,title='养殖技术') # index表示新创建的工作簿放在第几个位置   index从0开始计数
    

    <Worksheet “养殖技术”>

    wb.sheetnames  # 0 1 2 从0开始计数
    

    [‘跟进记录表’, ‘养殖技术’, ‘销售记录’]

    删除sheet表

    del wb['养殖技术']
    wb.sheetnames 
    

    [‘跟进记录表’, ‘销售记录’]

    wb.save('./data/第一个工作簿.xlsx')
    

    python写入Excel表格的方法详解

    千万记住:只有save()后打开Excel表格你做的操作才会显示

    将值写入单元格

    • 将值写入单元格,很像将值写入字典中的键
    • 如果你有单元格坐标的字符串,可以像字典的键一样,将它用于Worksheet对象,指定要写入的单元格。
    • 最后使用save()进行保存
    sheet = wb['销售记录'] 
    sheet['A1'] = 'HELLO'
    sheet['B2'] = 'world'
    wb.save('./data/第一个工作簿.xlsx')  # 操作之后一定要保存
    

    python写入Excel表格的方法详解

    二、项目:更新一个电子表格

    2.1 案例需求

    获取资源:produceSales.xlsx 提取码: ge7k

    这个项目需要编写一个程序,更新产品销售电子表格中的单元格,程序将遍历这个电子表格,找到特定类型的产品,并更新它们的价格

    数据说明

    • 每一行代表一次单独的销售。列分别是销售产品的类型(A)、产品每磅的价格(B)、销售的磅数(C),以及这次销售的总收入(D).TOTAL列已经设置为Excel公式,将每磅的成本乘以销售的磅数,并将结果取整到分。有了这个公式,如果列B或C发生变化,TOTAL列中的单元格将自动更新
    • 现在假设Garlic,Celery和Lemons的价格输入的不正确。这让你面对一项无聊的任务:遍历这个电子表格中的几万行,更新所有garlic.celery和lemon行中每磅的价格。你不能简单地对价格查找替换,因为可能有其他的产品价格一样,你不希望错误地"更正"。对于几万行数据,手工操作编程客栈可能要几小时。但你可以编写程序,几秒钟内完成这个任务。

    你的程序做下面的事情

    • 循环追历所有行。
    • 如果该行是Garlic,Celery或Lemons,更新价格。

    这意味着代码需要做下面的事情:

    • 打开电子表格文件。
    • 针对每一行,检查列A的值是不是Celery,Garlic或Lemon,如果是,更新列B中的价格。将该电子表格保存为一个新文件(这样就不会丢失原来的电子表格,以防万一)

    需要更新的价格如下

    • Celery 1.19
    • Garlic 3.07
    • Lemon 1.27

    python写入Excel表格的方法详解

    2.2 案例源码

    import openpyxl
    print('openning...')
    wb = openpyxl.load_workbook('./data/produceSales.xlsx')
    sheet = w编程客栈b['Sheet']
     
    # The produce 编程客栈types and their updated prices
    PRICE_UPDATES = {'Garlic': 3.http://www.cppcns.com07,
                     'Celery': 1.19,
                     'Lemon': 1.27}
     
    # Loop through the rows and update the prices.
    for rowNum in range(2, sheet.max_row + 1):
        # 取出第一列商品的名称
        produceName = sheet.cell(row=rowNum, column=1).value
        # 如果取出的商品名称在字典中 则需要修改
        if produceName in PRICE_UPDATES:
            sheet.cell(row=rowNum, column=2).value = PRICE_UPDATES[produceName]
    
    
    wb.save('./data/updateProduceSales.xlsx')
    print('finishing...')
    

    总结

    本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容! 

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜