python之读写Excel
最近公司在进行一些核对的工作,看着同事在excel文件中一个一个的比对信息,效率太低,还容易造成视觉疲劳,而发生错误,刚好年前事情不是很多,在学习python,正好使用python来读写Excel文件提升下自己的技能,也可以帮助同事,提升工作效率。
先去百度了下python读写Excel所需要的第三方包,这里使用了xlwt(关于将数据写入到Excel文件中)和xlrd(读取Excel文件中的信息)。
第一步,安装包:
我的工作环境是 windows+Python3.6,使用命令 pip install xlwt 和 pip install xlrd 来安装需要的包
第二步,读取Excel文件的信息:
读取Excel文件要使用到 xlrd 这个包,首先导入包,加载文件这里我传入的文件的绝对路径, 选择操作的文件的工作页sheet,最后做一些基本操作,读取行数rows、读取列数cols、读取一行或一列的数据,读取单元格数据,读取数据是以索引形式来定位数据的位置的,索引都是从0开始,这里看下代码:
import xlrd
from datetime import date,datetime
"""
读取excel 文件信息
"""
def read_excel():
ExcelFile= xlrd.open_workbook(r'E:\PhpDev\cgi-bin\ReadExcel\test.xls') # 文件的位置
print(ExcelFile.sheet_names())
sheet1= ExcelFile.sheet_by_index(0) # 选择操作的工作簿
print(sheet1.name,sheet1.ncols,sheet1.nrows)
rows = sheet1.row_values(2) # 读取一行数据
cols = sheet1.col_values(1) #读取一列数据
print(rows,cols)
print(sheet1.cell(2,0).value) #获取单元格信息
print(type(sheet1.cell_value(2,0))) #获取单元格内容类型
print(sheet1.cell_type(2,0)) # 获取到单元格数据
print(type(sheet1.cell_type(2,0)))
print(sheet1.cell_value(0,2))
print(type(sheet1.cell_value(0,2)))
第三部:将信息写入到新的excel文件中:
创建工作空间Wrokbook,添加工作页sheet 。设置写入格式样式style,将数据写入,保存wenjainimport xlwt
def writeSheetRow(sheet,rowValueList,rowIndex,isBold):
i=0
style = xlwt.easyxf('font:bold 1') # 设置样式
for svalue in rowValueList:
if isBold:
sheet.write(rowIndex,i,svalue,style)
else:
sheet.write(rowIndex,i,svalue)
i+=1
def save_Excel(strFile):
wbk = xlwt.Workbook() # 初始化工作空间
sheet = wbk.add_sheet('sheet2',cell_overwrite_ok=True) # 设置工作页
handlist=['标题1','标题2','标题3','标题4','标题5','标题6','标题7',]
rowIndex=0
writeSheetRow(sheet,handlist,rowIndex,True) # 设置样式,写入信息
for i in range(1,10):
rowIndex+=1
valuselist=[]
for j in range(1,8):
valuselist.append(j*i)
writeSheetRow(sheet,valuselist,rowIndex,False)
wbk.save(strFile) #保存文件
if __name__ == '__main__':
file = r'E:\PhpDev\cgi-bin\ReadExcel\test.xls'
save_Excel(file)
这样python的基本读写Excel文件的脚本就写好了,对于做一个内容扩充,就要根据不同的需求来设计,主要还是读写。