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()
原文地址:https://www.cnblogs.com/king2/p/13763550.html