zoukankan      html  css  js  c++  java
  • 使用Python处理Excel文件

    下载openpyxl模块

    pip install openpyxl
    import openpyxl
    # load_workbook()打开Excel文件
    wb = openpyxl.load_workbook('test_excel.xlsx')
    print(type(wb))
    # 属性sheetnames获得当前工作簿的所有工作表对象,以列表形式返回
    allsheets = wb.sheetnames
    print(allsheets)
    # 根据工作表的名称获取工作表对象
    ws = wb['Sheet1']
    # 属性title获得当前工作表的名称
    print(ws.title, type(ws))

    获取单元格内容

    # ws['栏行'].value取得工作表内容
    print(ws['A2'].value)
    
    # cell(column=,row=).value取得单元格内容
    print(ws.cell(column=1, row=1).value)
    取得工作表的栏数和行数
    print(ws.max_column)
    print(ws.max_row)

    遍历工作表

    # 利用ws.rows,ws.columns数据产生器遍历工作表
    for row in ws.rows:
        for cell in row:
            print("%10s" % cell.value, end="")
        print()

    字段的字母与数值的互相转换

    # 字段的字母与数值的互相转换
    from openpyxl.utils import get_column_letter, column_index_from_string
    print(get_column_letter(27))
    print(column_index_from_string('AB'))

    利用切片方法获取某区间数据

    # 利用切片方法获取某区间数据
    for row in ws['A2':'C5']:
        for cell in row:
            print(cell.value,end='')
        print()

    新建空白Excel文件并存储

    # 建立空白Excel文件并存储文件
    wb1 = openpyxl.Workbook()
    # 新建工作表
    ws1 = wb1.create_sheet('class')
    wb1.save('excel2.xlsx')

    复制文件

    # 利用save()复制文件
    wb.save('excel3.xlsx')

    新建工作表

    # 新建工作表
    wb.create_sheet()
    wb.create_sheet(index=0, title='fir')  # 建立第一个工作表
    wb.create_sheet(index=2, title='third')  # 建立第三个工作表

    删除工作表

    # 删除工作表
    wb.remove(wb["Sheet"])
    print(wb.sheetnames)

    写入单元格

    # 写入单元格
    ws['A6'] = '田七'
    ws['B6'] = 13
    ws['C6'] = ''
    wb.save('excel4.xlsx')

    将列表数据写入单元格

    # 将列表数据写入单元格
    row1 = ['王二', 15, '']
    ws.append(row1)
    wb.save('excel4.xlsx')

     设定单元格字体

    # 设定单元格字体
    from openpyxl.styles import Font
    ft1 = Font(name='宋体', size=20, bold=True)
    ws['A1'].font = ft1
    wb.save('excel4.xlsx')

    数学公式的使用

    # 数学公式的使用
    # 加总
    ws['D1'] = '总和'
    ws['D2'] = '=SUM(B2:B5)'
    #平均
    ws['E1'] = '平均'
    ws['E2'] = '=AVERAGE(B2:B5)'
    # 最大值
    ws['F1'] = '最大值'
    ws['F2'] = '=MAX(B2:B5)'
    # 最小值
    ws['G1'] = '最小值'
    ws['G2'] = '=MIN(B2:B5)'
    wb.save('excel4.xlsx')

    设定单元格的高度和宽度

    # 设定单元格的高度和宽度
    ws.row_dimensions[1].height = 40  # 设置单元格的高度
    ws.column_dimensions.width = 80  # 设置单元格的宽度
    wb.save('excel4.xlsx')

    单元格对齐方式

    # 单元格对齐方式
    from openpyxl.styles import Alignment
    ws['A1'].alignment = Alignment(horizontal='left',vertical='top')
    ws['B1'].alignment = Alignment(horizontal='center', vertical='bottom')
    wb.save('excel4.xlsx')

    合并与取消合并单元格

    # 合并单元格
    ws.merge_cells('A10:C10') ws.merge_cells('A12:A15') ws.merge_cells('D10:f13') wb.save('excel4.xlsx')
    # 取消合并单元格
    ws.unmerge_cells('D10:f13')
    wb.save('excel4.xlsx')

    柱形图

    # 柱形图
    from openpyxl.chart import BarChart,Reference
    barchart = BarChart()
    barchart.title = '学生信息统计表'
    barchart.y_axis.title = '年龄'
    barchart.x_axis.title = '姓名'
    # 建立数据对象
    data = Reference(ws,min_col=2,min_row=1,max_row=6)
    barchart.add_data(data, titles_from_data=True)
    # x轴的标记名称
    xtitle = Reference(ws,min_col=1,min_row=2,max_row=6)
    barchart.set_categories(xtitle)
    # 放置图表的位置
    ws.add_chart(barchart, 'H5')
    wb.save('excel4.xlsx')

    3D柱形图

    # 3D柱形图
    from openpyxl.chart import BarChart3D, Reference
    barchart3d = BarChart3D()
    barchart3d.title = '学生信息统计表'
    barchart3d.x_axis.title = 'name'
    barchart3d.y_axis.title = 'age'
    # 建立数据对象
    data = Reference(ws,min_col=2,min_row=1,max_row=6)
    barchart3d.add_data(data, titles_from_data=True)
    # x轴的标记名称
    xtitle = Reference(ws,min_col=1,min_row=2,max_row=6)
    barchart3d.set_categories(xtitle)
    # 放置图表的位置
    ws.add_chart(barchart3d, 'H10')
    wb.save('excel4.xlsx')

    饼图

    # 饼图
    from openpyxl.chart import PieChart, Reference
    piechart = PieChart()
    piechart.title = 'oooooo'
    # 建立数据对象
    data =Reference(ws,min_col=2,min_row=1,max_row=6)
    piechart.add_data(data, titles_from_data=True)
    # 标签名称
    lbl = Reference(ws, min_col=1, min_row=2, max_row=6)
    piechart.set_categories(lbl)
    # 放置图表的位置
    ws.add_chart(piechart, 'K1')
    wb.save('excel4.xlsx')

    3D饼图

    # 3D饼图
    from openpyxl.chart import PieChart3D,Reference
    piechart3d = PieChart3D()
    piechart3d.title='tttttt'
    # 建立数据对象
    data =Reference(ws,min_col=2,min_row=1,max_row=6)
    piechart3d.add_data(data, titles_from_data=True)
    # 标签名称
    lbl = Reference(ws, min_col=1, min_row=2, max_row=6)
    piechart3d.set_categories(lbl)
    # 放置图表的位置
    ws.add_chart(piechart3d, 'K15')
    wb.save('excel4.xlsx')


  • 相关阅读:
    Python之路【第十六篇】Django基础
    Python之路【第十五篇】WEB框架
    Python之路【第十四篇】前端补充回顾
    Python之路【第十三篇】jQuery案例-Form表单&插件及扩展
    Python之路【第十二篇续】jQuery案例详解
    Kafka【第一篇】Kafka集群搭建
    Python之路【第十二篇】前端之js&dome&jQuery
    Python之路【第十一篇续】前端之CSS补充
    Python之路【第十一篇续】前端初识之CSS
    Python之路【第十一篇】前端初识之HTML
  • 原文地址:https://www.cnblogs.com/mango1997/p/13720750.html
Copyright © 2011-2022 走看看