读取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