• python之excel读写操作


    读取excel,需要先下载xlrd包

    # -*- coding:utf-8 -*-
    import xlrd
    def read_exclData():
        """读取excel表中的内容"""
        book=xlrd.open_workbook('new.xls') #打开要读取的excel
        sheet=book.sheet_by_index(0)       #根据指定索引获取要读取的sheet页,下标从0开始算
        sheet=book.sheet_by_name('wu')     #根据sheet页名称获取要读取的sheet页
        rows=sheet.nrows                   #获取sheet页面里面的总行数,行数从1开始算,中间有空行也会计算
        columns=sheet.ncols                #获取sheet页面里面的总列数,列数从1开始算,中间有空行也会计算
        print(rows,columns)                #打印总行数,总列数
        print(sheet.cell(0,0).value)       #获取指定单元格里面的内容,返回字符串
        print(sheet.row_values(1))         #获取指定行的内容,返回的是列表,从下标0开始,空值也算
        print("==========================")
        for i in range(rows):              #获取所有的行的内容
            print(sheet.row_values(i))
    read_exclData()

    写入excel,需要先下载xlwt包

    def write_excelData():
        """往excel中写入数据"""
        #创建一个excel、参数style_compression表示是否压缩
        book=xlwt.Workbook(encoding = "utf-8", style_compression = 0)
        #创建一个sheet表,如果cell_overwrite_ok参数为True,则同一个单元格可以覆盖,默认为False
        worksheet=book.add_sheet("sheet1",cell_overwrite_ok = True)
        #往表中写入数据worksheet.write(row,col,value),row表示行号,col表示列号,value表示值
        worksheet.write(0,0,"李白")
        #保存
        book.save("write_libai.xls")
    write_excelData()

    其实在工作中,你是不能对原excel进行操作的,为什么?因为如果你在用这张表,其他同事也在用,你们都对表做修改,或者说你修改错了数据,怎么办?

    所以可以先对原表进行copy,然后再进行操作,怎么做?看下面的代码

    使用xlutils库copy excel表后进行操作

    import xlrd
    from xlutils.copy import copy
    def set_excelData():
    # 路径 ./表示当前目录 ../表示父层目录 excelDir = '../data/new.xls' # cell_overwrite_ok参数为True,则同一个单元格可以覆盖,默认为False workBook = xlrd.open_workbook(excelDir, formatting_info=True) # 复制一个新excel文件对象 注意这个是wb copy用来专门copy excel的.不是浅拷贝里面的copy workBookNew = copy(workBook) # 取复制出来的新excel文件对象的第一个子表。 注意copy出来的不能用name获取sheet页,用下标 workSheetNew = workBookNew.get_sheet(0) #保存复制出来的表 workBookNew.save('../data/new2.xls') if __name__ == '__main__': set_excelData()
  • 相关阅读:
    python的几个实例程序员节日快乐
    用python的time库写一个进度条
    用python绘画一些简单图片
    头文件板子
    Codeforces 606-C:Sorting Railway Cars(LIS)
    中南林业科技大学第十一届程序设计大赛- I:背包问题
    离散数学:用C语言来判断集合存在的二元关系
    中南林业科技大学第十一届程序设计大赛-C:有趣的二进制
    POJ 1611:The Suspects(并查集)
    POJ 2236:Wireless Network(并查集)
  • 原文地址:https://www.cnblogs.com/king2/p/13763550.html
Copyright © 2020-2023  润新知