python读写Excel文档

一、前言

使用python读写Excel库十分方便,安装 xlwt和xlrd 两个库后就可以愉快的玩耍了。接下来我们看下怎么使用吧

二、需要的库

  • xlwt库,写Excel文档
  • xlrd库,读Excel文档

三、对象类型

  • Workbook类型:workbook即工作簿,对应一整个Excel文档,这个不用多解释;
  • Worksheet类型:worksheet即工作表。一个Excel文档可以有若干个工作表,如下图。worksheet对象即代表对应下面的其中一张表;
    在这里插入图片描述

四、使用xlwt库来写Excel文档

知道了对象类型,接下来我们来尝试把 九九乘法表 写入Excel文档

引入库

  • import xlwt

写入举例

接下来我们写一个方法来完成功能,注释都在代码里了

def writeExample(savePath):
    #创建工作簿
    workbook = xlwt.Workbook(encoding="utf-8");

    #创建工作表
    worksheet = workbook.add_sheet("九九乘法表")

    #写入
    for i in range(0, 9):
        for j in range(0, i+1):
            str = ("%d * %d = %d"%(i+1,j+1,(i+1)*(j+1)))
            #实际写入语句
            worksheet.write(i,j,str)

    #保存
    workbook.save(savePath)

效果

九九乘法表

五、使用xlrd库来读Excel文档

引入库

import xlrd

读取举例

def readExample(excelPath):
    #获得book对象
    workbook = xlrd.open_workbook(excelPath)

    #获得sheet对象的3种写法
    worksheet = workbook.sheets()[0] #通过sheet()方法,并结合下标来获取
    # worksheet = workbook.sheet_by_index(0) #直接通过下标来获取
    # worksheet = workbook.sheet_by_name("your excel name") #通过名字来获取


    #因为xlrd库里的api没提示,这里手动指定类型,这样写起来就有提示了
    assert isinstance(worksheet,xlrd.sheet.Sheet)
    #自己写时若不知道类型,可以解开下面的打印,然后复制一下
    #print(type(worksheet))

    #打印行数和列数
    print("行数",worksheet.nrows)
    print("列数",worksheet.ncols)

    #获取第i,j个格子的值的3种写法
    print(worksheet.cell(0,0).value)
    print(worksheet.cell_value(0,0))
    print(worksheet.row(0)[0].value)

    #遍历
    for i in range(worksheet.nrows):
        for j in range(worksheet.ncols):
            print(worksheet.cell_value(i,j))

效果

读取效果图

六、完整代码



import xlwt

excelPath = "./九九乘法表.xls"

def writeExample(savePath):
    #创建工作簿
    workbook = xlwt.Workbook(encoding="utf-8");

    #创建工作表
    worksheet = workbook.add_sheet("九九乘法表")

    #写入
    for i in range(0, 9):
        for j in range(0, i+1):
            str = ("%d * %d = %d"%(i+1,j+1,(i+1)*(j+1)))
            #实际写入语句
            worksheet.write(i,j,str)

    #保存
    workbook.save(savePath)

writeExample(excelPath)


import xlrd

def readExample(excelPath):
    #获得book对象
    workbook = xlrd.open_workbook(excelPath)

    #获得sheet对象的3种写法
    worksheet = workbook.sheets()[0] #通过sheet()方法,并结合下标来获取
    # worksheet = workbook.sheet_by_index(0) #直接通过下标来获取
    # worksheet = workbook.sheet_by_name("your excel name") #通过名字来获取


    #因为xlrd库里的api没提示,这里手动指定类型,这样就有提示了
    assert isinstance(worksheet,xlrd.sheet.Sheet)
    #自己写时若不知道类型,可以解开下面的打印,然后复制一下
    #print(type(worksheet))

    #打印行数和列数
    print("行数",worksheet.nrows)
    print("列数",worksheet.ncols)

    #获取第i,j个格子的值的3种写法
    print("获取第(0,0)个格子的值的3种写法")
    print(worksheet.cell(0,0).value)
    print(worksheet.cell_value(0,0))
    print(worksheet.row(0)[0].value)

    print()

    #遍历
    for i in range(worksheet.nrows):
        for j in range(worksheet.ncols):
            print(worksheet.cell_value(i,j),end="\t")
        print()

readExample(excelPath)

猜你喜欢

转载自blog.csdn.net/aaa27987/article/details/122920478