一、使用xlrd和xlwt这两个库来处理excel,即xlrd是读excel的库,xlwt是写excel的库

1.使用 xlrd 读取Excel数据

# -*- coding:utf-8 -*-
import xlrd

def read_excel():
    book = xlrd.open_workbook(filename='D:\Excel3.xls')  # 打开文件
    print(book.sheet_names())  # 获取所有表格名字

    # 获取表格的方式
    sheet1 = book.sheets()[0]
    sheet2 = book.sheet_by_index(0)                 # 根据顺序获取sheet,0表示第一个sheet
    sheet3 = book.sheet_by_name('学生1')            # 根据sheet页名字获取sheet
    print(sheet1.name, sheet1.nrows, sheet1.ncols)  # 获取excel里面有多少行,多少列

    sheet1.row_values(1)  # 取第几行的数据,返回一个列表list
    sheet1.col_values(1)  # 取第几列的数据,返回一个列表list

    # 获取表格里的内容,三种方式:指定行和列获取数据,0行0列代表excel中第一个数据
    print(sheet1.cell(1, 1).value)
    print(sheet1.cell_value(1, 1))
    print(sheet1.row(1)[1].value)

    excelhead = []
    for i in range(sheet1.ncols):       # 查询表头,即获取第一行的数据
        excel_head_values = sheet1.col_values(i)
        excelhead.append(excel_head_values[0])
    print(excelhead)

    for i in range(sheet1.nrows)[1:]:   # 查询行的值,从第二行开始
        row_values = sheet1.row_values(i)
        print(' '.join([str(x) for x in row_values]))

if __name__ == "__main__":
    read_excel()

2.使用 xlwt 写入Excel数据

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
  • write(x, y, string):x表示行,y表示列,string表示要写入的单元格内容。
  • write_merge(x, x + m, y, w + n, string, sytle):x表示行,y表示列,m表示跨行个数,n表示跨列个数,string表示要写入的单元格内容,style表示单元格样式。其中,x,y,w,h,都是以0开始计算的。

  • 示例:sheet1.write_merge(21,21,0,1,u'合计',set_style('Times New Roman',220,True)):即在22行合并第1,2列,合并后的单元格内容为"合计",并设置了style。
# -*- coding:utf-8 -*-
import xlwt

def write_excel():
    book = xlwt.Workbook()           # 新建一个excel

    sheet1 = book.add_sheet('学生1')  # 添加一个sheet页,创建第一个sheet:学生1
    data = [['姓名', '年龄', '性别', '分数'], ['mary', 20, '女', 90], ['jack', 26, '男', 96]]
    raw = 0               # 控制行
    for stu in data:      # 循环写入
        col = 0           # 控制列
        for s in stu:
            sheet1.write(raw, col, s)
            col += 1
        raw += 1
    sheet1.write_merge(3, 3, 1, 3, '待确认')   # 合并列单元格,第2列到第4列合并
    sheet1.write_merge(1, 3, 4, 4, '打游戏')   # 合并行单元格,第2行到第4行合并

    sheet2 = book.add_sheet('学生2', cell_overwrite_ok=True)  # 添加一个sheet页,创建第二个sheet:学生2
    row0 = ["姓名", "年龄", "爱好", "出生日期"]
    col0 = ["张三", "李四", "小明", "小红", "无名"]
    for i in range(0, len(row0)):  # 写第一行
        sheet2.write(0, i, row0[i])
    for i in range(0, len(col0)):  # 写第一列
        sheet2.write(i + 1, 0, col0[i])
    sheet2.write(1, 3, '91/12/12')
    sheet2.write_merge(5, 5, 2, 3, u'暂无')        # 合并列单元格
    sheet2.write_merge(2, 3, 3, 3, u'94/05/06')   # 合并行单元格

    book.save('D:\Excel3.xls')                    # 保存文件

if __name__ == "__main__":
    write_excel()

3.使用 xlutils 修改Excel数据

# -*- coding:utf-8 -*-
import xlrd
from xlutils.copy import copy

book1 = xlrd.open_workbook('D:\Excel.xls')  # 打开要修改的excel
book2 = copy(book1)         # 拷贝一份原来的excel
sheet = book2.get_sheet(0)  # 获取第几个sheet页
sheet.write(1, 1, 28)       # 写入需要修改的行、列及修改后的值
sheet.write(5, 0, 'mike')
book2.save('D:\Excel.xls')

参考:https://blog.csdn.net/csdnnews/article/details/80878945

参考:https://www.jb51.net/article/60510.htm

二、使用 openpyxl 来处理excel

参考:https://www.jianshu.com/p/45c507e73172

参考:https://segmentfault.com/a/1190000016256490

参考:https://www.cnblogs.com/feifeifeisir/p/10419262.html

之后在研究

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄