这篇文章给大家分享的是有关python下处理excel表格的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

xlrd模块

xlrd是python中一个第三方的用于读取excle表格的模块,很多企业在没有使用计算机管理前大多使用表格来管理数据,所以导入表格还是非常常用的!

安装xlrd

pip install xlrd

excel结构分析

一个excle表格包含多个sheet

一个sheet中包含多行多列

每个单元格具备唯一的行号和列号

常用函数

importxlrd#读取文件work_book=xlrd.open_workbook("/Users/jerry/Desktop/公司机密数据.xlsx")#选取一个表#获取所有所有表格名称print(work_book.sheet_names())#选择第2个索引从0开始sheet=work_book.sheet_by_index(1)#表格名称print(sheet.name)#行数print(sheet.nrows)#列数print(sheet.ncols)#批量读取行数据#取出第6行的全部内容包含数据类型print(sheet.row(6))#取出第6行的内容包含数据类型从第3列开始获取print(sheet.row_slice(6,start_colx=3))#取出第6行的内容包含数据类型从第3列开始获取print(sheet.row_slice(6,start_colx=4,end_colx=5))#获取该行所有数据类型一数字表示#print(sheet.row_types(6))#print(sheet.row_values(6))#单元格的处理print(sheet.cell(0,0).value)#取值print(sheet.cell(0,0).ctype)#取类型print(sheet.cell_value(2,0))#直接取值print(sheet.row(0)[0])#先取行再取单元格print(sheet.col(0))#第0列所有数据print(sheet.col(0))#先取列再取单元格print(sheet.cell_type(0,0))#单元格位置转换print(xlrd.cellname(2,1))print(xlrd.cellnameabs(0,2))print(xlrd.colname(5))#时间类型转换#print(sheet.cell(6,5).value)#print(xlrd.xldate_as_datetime(sheet.cell(6,5).value,1))

案例:

读取一个报价单 其第二个sheet包含合并单元格

文件地址:https://share.weiyun.com/5GaLY2m

importxlrdsheet=xlrd.open_workbook("报价单.xlsx").sheet_by_index(1)defget_text(row,col):#判断该坐标是否是被合并的单元格合并单元格的数据都在合并区域的第一个位置forcesinsheet.merged_cells:if(row>=ces[0]androw<ces[1])and(col>=ces[2]andcol<ces[3]):returnsheet.cell(ces[0],ces[2]).value#取出合并区域的第一个数据returnsheet.cell(row,col).value#正常取出对应数据keys=sheet.row_values(1)#获取所有的列标题data=[]forrowinrange(2,sheet.nrows):dic={}forcolinrange(sheet.ncols):k=keys[col]#确定keyres=get_text(row,col)dic[k]=res#确定值并存储data.append(dic)print(data)#序列化为jsonimportjsonjson.dump(data,open("test.json","wt"),ensure_ascii=False)

xlwt模块

是python中一个第三方的用于写入excle数据到表格的模块

用代码来编写exlce是非常低效的 所以该模块了解即可。

importxlwt#创建工作簿work=xlwt.Workbook()#创建一个表sheet=work.add_sheet("员工信息数据")#创建一个字体对象font=xlwt.Font()font.name="TimesNewRoman"#字体名称font.bold=True#加粗font.italic=True#斜体font.underline=True#下划线#创建一个样式对象style=xlwt.XFStyle()style.font=font#写入标题forkinkeys:sheet.write(0,keys.index(k),k,style)#写入数据foriininfos:forkinkeys:sheet.write(1+infos.index(i),keys.index(k),label=i[k])#保存至文件work.save("test.xls")

importxlrdimportpymysql#读取文件work_book=xlrd.open_workbook("/xxx/xxx.xlsx")#选取一个表sheet=work_book.sheet_by_index(0)#遍历表格数据datas=[]forrowinrange(1,sheet.nrows):temp_list=[]forcolinrange(sheet.ncols):value=sheet.cell_value(row,col)temp_list.append(value)datas.append(temp_list)#打开数据库连接db=pymysql.connect(host='localhost',port=3306,user='username',passwd='password',db='database_name',charset='utf8')#使用cursor()方法获取操作游标cursor=db.cursor()#SQL插入语句sql="INSERTINTOSHOP(shop_code,shop_name,month)VALUES(%s,%s,%s)"try:#执行sql语句cursor.executemany(sql,datas)#提交到数据库执行db.commit()except:#如果发生错误则回滚db.rollback()#关闭游标cursor.close()#关闭数据库连接db.close()

感谢各位的阅读!关于python下处理excel表格的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!