美文网首页python之路
使用openpyxl操作excel

使用openpyxl操作excel

作者: 非鱼2018 | 来源:发表于2021-06-13 20:16 被阅读0次

    操作excel使用xlrd、xlwt、xlutils读取,新建,修改需要用到3个库,且只是针对xls格式,无法操作xlsx格式的excel文件,openpyxl专门针对xlsx格式,可以读写,生成图表等等,一个库搞定
    当然,如果是生成excel或读取整个excel用pandas则更方便

    1.一些基本用法

    # -*- coding: utf-8 -*-
    import openpyxl
    from openpyxl.styles import Font
    #新增
    wb = openpyxl.Workbook()
    ws = wb.active
    ws['A1'].value='123'
    #读取,修改
    wb = openpyxl.load_workbook('d:\\sample1.xlsx')
    ws = wb['Sheet1']
    print(ws['A1'].value) #123
    ws['A1'].value=456 #可直接进行修改
    #合并单元格直接读取第一个单元格数据即可
    #公式计算的单元格获取到的是公式
    #多行写入,append
    ws.append(["Fruit", "2011", "2012", "2013", "2014"]) #比如xlwt循环写入要方便的多
    或:rows=[[1,2,3],[4,5,6]]
    for row in rows:
        ws.append(row)
    #设置字体
    ft1 = Font(name=u'宋体', size=14,color='FFBB00')
    for i in range(10):
        ws.append([i])
        ws['A'+str(i+1)].font=ft1
    # 保存
    wb.save("e:\\sample.xlsx")
    #设置表格样式
    tab = Table(displayName="Table1", ref="A1:E5")
    style = TableStyleInfo(name="TableStyleMedium2", showFirstColumn=True,
                           showLastColumn=True, showRowStripes=True, showColumnStripes=True)
    tab.tableStyleInfo = style
    ws.add_table(tab)
    
    image.png

    2.结合beatufulsoup将网页上的table数据抓取生成excel

    # -*- coding: utf-8 -*-
    import openpyxl
    from bs4 import BeautifulSoup as bs
    from urllib import request
    
    url="http://www.example.com/info"
    #response=open('123.html','r').read()
    response=open(url).read()
    wb=openpyxl.Workbook()
    ws=wb.active
    
    html=bs(response,features='lxml')
    table=html.find_all('table')[0]
    datas=[]
    for tr in table.find_all('tr'):
        rows=[]
        for td in tr.find_all(['td','th']):
            print(td.get_text())
            rows.append(td.get_text())
        ws.append(rows)
    
    wb.save('result.xlsx')
    

    其实如果使用pandas的话则更简洁,直接使用df.readhtml()方法可以直接读取table,然后再使用to_excel生成excel文件

    相关文章

      网友评论

        本文标题:使用openpyxl操作excel

        本文链接:https://www.haomeiwen.com/subject/uekductx.html