Python实现excel数据的读取和写入

首先,很感谢B站和网上的其他博客,个人觉得博主的文章很全面~,谢谢

https://www.bilibili.com/video/BV14p4y1e7RK?from=search&seid=15752825247017275522&spm_id_from=333.337.0.0,

https://blog.csdn.net/zhouz92/article/details/107119898?spm=1001.2014.3001.5501

其次,写这篇更多的是回顾今天所学:使用python中的xlrd模块和xlwt模块实现对Excel中数据的写入和读取操作。

目标:

  1. 新建Excel工作表
  2. 向具体的单元格写入数据
  3. 读入其他Excel表的内容。因为我想实现第二步写入的数据来自其他的Excel表
  4. 对单元格添加一些样式
  •    我把每个小目标分别写成了函数,使得代码看起来思路清晰

详细代码:

分别安装模块: pip install xlrd     pip install xlwt

1.创建新的excel表函数:

# 创建excel表
def create_excel():
    work_book = xlwt.Workbook()  # 新建工作簿
    # cell_overwrite_ok默认是False,是否覆盖
    ws = work_book.add_sheet("Test1", cell_overwrite_ok=True)  # 新建工作表
    return work_book, ws

2.向具体的单元格写入数据: 

这里先向(0,0)(1,1)单元格写入数据,后期从其他工作表中读取数据后再修改

# 向具体的工作表的单元格写入数据
def write_data(work_book, work_sheet):  # 传入的参数为:工作簿,工作表
    # 向单元格写入内容
    work_sheet.write(0, 0, "123")
    work_sheet.write(1, 1, "come on")
    work_book.save("Test.xls")

3.读取excel中的数据:

# 读取excel表中的数据
def read_data(path):
    work_book = xlrd.open_workbook(path)
    sheet = work_book.sheet_by_index(0)  # 根据索引获取具体是哪一个工作表,也可以根据工作表的名字来获取工作表
    print("一共有:", sheet.nrows, "", sheet.ncols, "")

4.样式函数:

我这里目前只是设置了一下字体,当然如果有其他需求,可以在这个函数不断地添加需求,例如对齐方式等。

# 设置单元格样式
def change_style():
    style = xlwt.XFStyle()  # 初始化样式
    # 字体的设置
    c_font = xlwt.Font()  # 设置字体的对象并初始化
    c_font.name = "宋体"
    c_font.bold = True  # 加粗
    c_font.height = 16 * 20  # 字体大小  这里设置成16号字体,但是我没有理解*20操作
    c_font.colour_index = 0x0B  # 这里颜色并不是我们平时所见的rgb,跳转到colour_index选择其他颜色就可以
    style.font = c_font  # 我的理解:将修改后的字体对象赋值给总的样式

    # 对齐方式的设置
    return style

主函数中的代码:

write_data()函数中,如果需要设置样式,则传参时加入style1;如果不需要,则删除,系统有默认的样式,看个人需求。

if __name__ == '__main__':
    wb, ws = create_excel()
    style1=change_style()
    write_data(wb, ws,style1)
    file = "abc.xls"
    read_data(file)

 

posted @ 2021-12-30 11:10  奔跑的蜗牛mxl  阅读(2766)  评论(0编辑  收藏  举报