『壹』 python读取excel格式
Python读写文件常用方法大全Huny 信息网络工程研究中心 2020-12-191 前言python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式。用xlrd和xlwt进行excel读写;用openpyxl进行excel读写;用pandas进行excel读写;参考:https://www.python-excel.org/https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html#pandas.read_excelhttps://www.jianshu.com/p/19219542bf232 数据准备为了方便演示,我这里新建了一个data.xls和data.xlsx文件,第一个工作表sheet1区域“A1:E5”的内容如下,用于测试读写excel的代码:3 xlrd和xlwtxlrd是一个库,用于从Excel文件中以.xls格式读取数据和格式化信息xlwt是一个库,用于将数据和格式化信息写入较旧的Excel文件(例如:.xls)。示例pip install xlrdpip install xlwt我们开始来读取文件的内容import xlrdimport osfile_path = os.path.dirname(os.path.abspath(__file__))base_path = os.path.join(file_path, 'data.xlsx')book = xlrd.open_workbook(base_path)sheet1 = book.sheets()[0]nrows = sheet1.nrowsprint('表格总行数', nrows)ncols = sheet1.ncolsprint('表格总列数', ncols)row3_values = sheet1.row_values(2)print('第3行值', row3_values)col3_values = sheet1.col_values(2)print('第3列值', col3_values)cell_3_3
『贰』 python 处理excel
使用xlrd读取文件,使用xlwt生成Excel文件(可以控制Excel中单元格的格式)。但是用xlrd读取excel是不能对其进行操作的;而xlwt生成excel文件是不能在已有的excel文件基础上进行修改的,如需要修改文件就要使用xluntils模块。pyExcelerator模块与xlwt类似,也可以用来生成excel文件。[代码]test_xlrd.py **#coding=utf-8########################################################filename:test_xlrd.py#author:defias#date:xxxx-xx-xx#function:读excel文件中的数据#######################################################import xlrd#打开一个workbookworkbook = xlrd.open_workbook('E:\\Code\\Python\\testdata.xls')#抓取所有sheet页的名称worksheets = workbook.sheet_names()print('worksheets is %s' %worksheets)#定位到sheet1worksheet1 = workbook.sheet_by_name(u'Sheet1')"""#通过索引顺序获取worksheet1 = workbook.sheets()[0]#或worksheet1 = workbook.sheet_by_index(0)""""""#遍历所有sheet对象for worksheet_name in worksheets:worksheet = workbook.sheet_by_name(worksheet_name)"""#遍历sheet1中所有行rownum_rows = worksheet1.nrowsfor curr_row in range(num_rows):row = worksheet1.row_values(curr_row)print('row%s is %s' %(curr_row,row))#遍历sheet1中所有列colnum_cols = worksheet1.ncolsfor curr_col in range(num_cols):col = worksheet1.col_values(curr_col)print('col%s is %s' %(curr_col,col))#遍历sheet1中所有单元格cellfor rown in range(num_rows):for coln in range(num_cols):cell = worksheet1.cell_value(rown,coln)print cell"""#其他写法:cell = worksheet1.cell(rown,coln).valueprint cell#或cell = worksheet1.row(rown)[coln].valueprint cell#或cell = worksheet1.col(coln)[rown].valueprint cell#获取单元格中值的类型,类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 errorcell_type = worksheet1.cell_type(rown,coln)print cell_type"""**2. [代码]test_xlwt.py **#coding=utf-8########################################################filename:test_xlwt.py#author:defias#date:xxxx-xx-xx#function:新建excel文件并写入数据#######################################################import xlwt#创建workbook和sheet对象workbook = xlwt.Workbook() #注意Workbook的开头W要大写sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)#向sheet页中写入数据sheet1.write(0,0,'this should overwrite1')sheet1.write(0,1,'aaaaaaaaaaaa')sheet2.write(0,0,'this should overwrite2')sheet2.write(1,2,'bbbbbbbbbbbbb')"""#———–使用样式———————————–#初始化样式style = xlwt.XFStyle() #为样式创建字体font = xlwt.Font()font.name = 'Times New Roman'font.bold = True#设置样式的字体style.font = font#使用样式sheet.write(0,1,'some bold Times text',style)"""#保存该excel文件,有同名文件时直接覆盖workbook.save('E:\\Code\\Python\\test2.xls')print '创建excel文件完成!'**3. [代码]test_xlutils.py **#coding=utf-8########################################################filename:test_xlutils.py#author:defias#date:xxxx-xx-xx#function:向excel文件中写入数据#######################################################import xlrdimport xlutils.#打开一个workbookrb = xlrd.open_workbook('E:\\Code\\Python\\test1.xls') wb = xlutils..(rb)#获取sheet对象,通过sheet_by_index()获取的sheet对象没有write()方法ws = wb.get_sheet(0)#写入数据ws.write(1, 1, 'changed!')#添加sheet页wb.add_sheet('sheetnnn2',cell_overwrite_ok=True)#利用保存时同名覆盖达到修改excel文件的目的,注意未被修改的内容保持不变wb.save('E:\\Code\\Python\\test1.xls')**4. [代码]test_pyExcelerator_read.py **#coding=utf-8########################################################filename:test_pyExcelerator_read.py#author:defias#date:xxxx-xx-xx#function:读excel文件中的数据#######################################################import pyExcelerator#parse_xls返回一个列表,每项都是一个sheet页的数据。#每项是一个二元组(表名,单元格数据)。其中单元格数据为一个字典,键值就是单元格的索引(i,j)。如果某个单元格无数据,那么就不存在这个值sheets = pyExcelerator.parse_xls('E:\\Code\\Python\\testdata.xls')print sheets**5. [代码]test_pyExcelerator.py **#coding=utf-8########################################################filename:test_pyExcelerator.py#author:defias#date:xxxx-xx-xx#function:新建excel文件并写入数据#######################################################import pyExcelerator#创建workbook和sheet对象wb = pyExcelerator.Workbook()ws = wb.add_sheet(u'第一页')#设置样式myfont = pyExcelerator.Font()myfont.name = u'Times New Roman'myfont.bold = Truemystyle = pyExcelerator.XFStyle()mystyle.font = myfont#写入数据,使用样式ws.write(0,0,u'ni hao 帕索!',mystyle)#保存该excel文件,有同名文件时直接覆盖wb.save('E:\\Code\\Python\\mini.xls')print '创建excel文件完成!'
『叁』 python如何操作当前已经打开的excel
读取一个Excel的基本流程1. 双击打开一个Excel文件2. 选择sheet3. 对sheet里面的东西进行操作在python中我们使用第三方模块 openpyxl模块操作Excelps:这个模块不是python自带的 是第三方模块需要我们下载的进入终端输入: pip install openpyxl如果想要下载快点:网络搜索 python第三方源from openpyxl import load_workbook# 1. 打开Excel文件 workbook = load_workbook("p1.xlsx")# 2. 选择sheet# 2.1 获取所有sheet# print(workbook.sheetnames)# 2.2 选择sheetsheet = workbook["Sheet1"]print(sheet.max_row) # 最大行号print(sheet.max_column) # 最大列号# 2.3 我们选择了sheet后就可以去操作数据了# cell = sheet.cell(1, 1) # 获取到单元格# print(cell.value)sheet 相关操作from openpyxl import load_workbook# 1. 打开Excel文件 workbook = load_workbook("p1.xlsx")# 2. 选择sheet# 2.1 获取所有sheet# print(workbook.sheetnames)# 2.2 选择sheet# sheet = workbook["Sheet1"]# 2.3 基于索引的方式获取sheet# sheet = workbook.worksheets[0]# 3. 获取到所有的sheet# for name in workbook.sheetnames:# sheet = workbook[name]# cell = sheet.cell(1, 1)# print(cell.value)读单元格的数据from openpyxl import load_workbook# 1. 打开Excel文件 workbook = load_workbook("p1.xlsx")# 2 获取sheetsheet = workbook.worksheets[0]# 获取到第N行第N列的单元格# cell = sheet.cell(1, 2)# print(cell.value)# 获取到某个单元格# cell = sheet['A2']# print(cell.value)# print()# for cell in sheet[1]: # 获取到第一行的内容# print(cell.value)# 获取到所有的行的数据 获取到一列的值# for row in sheet.rows:# print(row[0].value)# 获取到所有的列的数据 获取到一行的值for col in sheet.columns:print(col[0].value)写Excel# 在Excel中想要写文件 大致可以分为两种# 1. 在原有的Excel的基础上写内容# 2. 在一个新的Excel里面写内容1. 打开Excel表格2. 找到单元格 修改写入内容3. 保存# from openpyxl import load_workbook## # 1. 打开Excel文件# workbook = load_workbook("p1.xlsx")# # 2 获取sheet# sheet = workbook.worksheets[0]## # 获取到第N行第N列的单元格# # cell = sheet.cell(1, 2)# # print(cell.value)## # 获取到某个单元格## # cell = sheet['A2']# # print(cell.value)## # print()# # for cell in sheet[1]: # 获取到第一行的内容# # print(cell.value)### # 获取到所有的行的数据 获取到一列的值# # for row in sheet.rows:# # print(row[0].value)## # 获取到所有的列的数据 获取到一行的值# for col in sheet.columns:# print(col[0].value)# from openpyxl import workbook# wb = workbook.Workbook() # 创建一个Excel会默认有一个sheet 就叫Sheet# 1. 修改sheet名称# sheet = wb.worksheets[0]# sheet.title = '数据集'# wb.save('p2.xlsx')# 2. 创建一个新的sheet 还可以设置颜色# sheet = wb.create_sheet('工作计划', 1)# sheet.sheet_properties.tabColor = 'FFB6C1'# wb.save('p2.xlsx')# 3. sheet# sheet = wb.create_sheet('工作计划')# sheet.sheet_properties.tabColor = 'FFB6C1'## new_sheet = wb._worksheet(wb['Sheet'])# new_sheet.title = '新的计划'# wb.save('p2.xlsx')# print(wb.sheetnames)# sheet = wb.worksheets[0]# cell = sheet.cell(1, 1)# cell.value = '哈哈哈'## wb.save('p2.xlsx')from openpyxl import load_workbook# 1. 打开Excel文件workbook = load_workbook("p2.xlsx")# 2 获取sheetsheet = workbook.worksheets[0]# 1. 获取某个单元格 修改值# cell = sheet.cell(1, 1)# cell.value = '哈哈哈'# wb.save('p2.xlsx')# 2. 获取某个单元格 修改值# sheet['B3'] = '光'# workbook.save('p2.xlsx')# cell_list = sheet["B2": 'C3']# for row in cell_list:# for cell in row:# cell.value = '新的值'# workbook.save('p1.xlsx')for row in sheet.iter_rows(min_row=5, min_col=1, max_col=7, max_row=10): for cell in row: cell.value = 'oo'workbook.save('p1.xlsx')r row in sheet.iter_rows(min_row=5, min_col=1, max_col=7, max_row=10):for cell in row:cell.value = ‘oo’workbook.save(‘p1.xlsx’)
『肆』 Python语言怎么打开Excel文件
一、安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。二、使用介绍 1、导入模块 import xlrd 2、打开Excel文件读取数据 data = xlrd.open_workbook('excelFile.xls')
『伍』 python读取excel文件如何进行
python编程语言拥有着比较强大的excel读写能力,我们只需要安装xlrd,xlwt这两个库就可以了。那么python读取excel文件如何进行,今天就为大家分享下python读取excel文件的具体操作方法,快来了解下吧!
『陆』 python怎么读取excel文件
1.读取Excel(需要安装xlrd):
#-*- coding: utf8 -*-import xlrdfname = "reflect.xls"bk = xlrd.open_workbook(fname)shxrange = range(bk.nsheets)try:sh = bk.sheet_by_name("Sheet1")except:print "no sheet in %s named Sheet1" % fname#获取行数nrows = sh.nrows#获取列数ncols = sh.ncolsprint "nrows %d, ncols %d" % (nrows,ncols)#获取第一行第一列数据cell_value = sh.cell_value(1,1)#print cell_valuerow_list = []#获取各行数据for i in range(1,nrows):row_data = sh.row_values(i)row_list.append(row_data)
2.写入Excel(需安装pyExcelerator)
from pyExcelerator import *w = Workbook() #创建一个工作簿ws = w.add_sheet('Hey, Hades') #创建一个工作表ws.write(0,0,'bit') #在1行1列写入bitws.write(0,1,'huang') #在1行2列写入huangws.write(1,0,'xuan') #在2行1列写入xuanw.save('mini.xls') #保存
3.再举个自己写的读写Excel的例子读取reflect.xls中的某些信息进行处理后写入mini.xls文件中。
#-*- coding: utf8 -*-import xlrdfrom pyExcelerator import *w = Workbook()ws = w.add_sheet('Sheet1')fname = "reflect.xls"bk = xlrd.open_workbook(fname)shxrange = range(bk.nsheets)try:sh = bk.sheet_by_name("Sheet1")except:print "no sheet in %s named Sheet1" % fnamenrows = sh.nrowsncols = sh.ncolsprint "nrows %d, ncols %d" % (nrows,ncols)cell_value = sh.cell_value(1,1)#print cell_valuerow_list = []mydata = []for i in range(1,nrows):row_data = sh.row_values(i)pkgdatas = row_data[3].split(',')#pkgdatas.split(',')#获取每个包的前两个字段for pkgdata in pkgdatas:pkgdata = '.'.join((pkgdata.split('.'))[:2])mydata.append(pkgdata)#将列表排序mydata = list(set(mydata))print mydata#将列表转化为字符串mydata = ','.join(mydata)#写入数据到每行的第一列ws.write(i,0,mydata)mydata = []row_list.append(row_data[3])#print row_listw.save('mini.xls')
4.现在我需要根据Excel文件中满足特定要求的apk的md5值来从服务器获取相应的apk样本,就需要这样做:
#-*-coding:utf8-*-import xlrdimport osimport shutilfname = "./excelname.xls"bk = xlrd.open_workbook(fname)shxrange = range(bk.nsheets)try:#打开Sheet1工作表sh = bk.sheet_by_name("Sheet1")except:print "no sheet in %s named Sheet1" % fname#获取行数nrows = sh.nrows#获取列数ncols = sh.ncols#print "nrows %d, ncols %d" % (nrows,ncols)#获取第一行第一列数据cell_value = sh.cell_value(1,1)#print cell_valuerow_list = []#range(起始行,结束行)for i in range(1,nrows):row_data = sh.row_values(i)if row_data[6] == "HXB":filename = row_data[3]+".apk"#print "%s %s %s" %(i,row_data[3],filename)filepath = r"./1/"+filenameprint "%s %s %s" %(i,row_data[3],filepath)if os.path.exists(filepath):shutil.(filepath, r"./myapk/")
补充一个使用xlwt3进行Excel文件的写操作。
import xlwt3if __name__ == '__main__':datas = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h']]#二维数组file_path = 'D:\test.xlsx'wb = xlwt3.Workbook()sheet = wb.add_sheet('test')#sheet的名称为test#单元格的格式style = 'pattern: pattern solid, fore_colour yellow; '#背景颜色为黄色style += 'font: bold on; '#粗体字style += 'align: horz centre, vert center; '#居中header_style = xlwt3.easyxf(style)row_count = len(datas)col_count = len(datas[0])for row in range(0, row_count):col_count = len(datas[row])for col in range(0, col_count):if row == 0:#设置表头单元格的格式sheet.write(row, col, datas[row][col], header_style)else:sheet.write(row, col, datas[row][col])wb.save(file_path)
输出的文件内容如下图:
注:以上代码在Python 3.x版本测试通过。
『柒』 python中怎么打开excel
读excel要用到xlrd模块,官网安装(http://pypi.python.org/pypi/xlrd)。然后就可以跟着里面的例子稍微试一下就知道怎么用了。大概的流程是这样的:1、导入模块importxlrd2、打开excel文件读取数据data=xlrd.open_workbook('excel.xls')3、获取一个工作表①table=data.sheets()[0]#通过索引顺序获取②table=data.sheet_by_index(0)#通过索引顺序获取③table=data.sheet_by_name(u'sheet1')#通过名称获取4、获取整行和整列的值(返回数组)table.row_values(i)table.col_values(i)5、获取行数和列数table.nrowstable.ncols6、获取单元格table.cell(0,0).valuetable.cell(2,3).value就我自己使用的时候觉得还是获取cell最有用,这就相当于是给了你一个二维数组,余下你就可以想怎么干就怎么干了。得益于这个十分好用的库代码很是简洁。但是还是有若干坑的存在导致话了一定时间探索。现在列出来供后人参考吧:1、首先就是我的统计是根据姓名统计各个表中的信息的,但是调试发现不同的表中各个名字貌似不能够匹配,开始怀疑过编码问题,不过后来发现是因为空格。因为在excel中输入的时候很可能会顺手在一些名字后面加上几个空格或是tab键,这样看起来没什么差别,但是程序处理的时候这就是两个完全不同的串了。我的解决方法是给每个获取的字符串都加上strip()处理一下。效果良好2、还是字符串的匹配,在判断某个单元格中的字符串(中文)是否等于我所给出的的时候发现无法匹配,并且各种unicode也不太奏效,网络过一些解决方案,但是都比较复杂或是没用。最后我采用了一个比较变通的方式:直接从excel中获取我想要的值再进行比较,效果是不错就是通用行不太好,个呢不能问题还没解决。二、写excel表写excel表要用到xlwt模块,官网下载(http://pypi.python.org/pypi/xlwt)。大致使用流程如下:1、导入模块复制代码代码如下:importxlwt2、创建workbook(其实就是excel,后来保存一下就行)复制代码代码如下:workbook=xlwt.workbook(encoding='ascii')3、创建表复制代码代码如下:worksheet=workbook.add_sheet('myworksheet')4、往单元格内写入内容复制代码代码如下:worksheet.write(0,0,label='row0,column0value')5、保存复制代码代码如下:workbook.save('excel_workbook.xls')
『捌』 python如何打开文档查看内容
方法一:使用最基本的open函数进行读取打开;方法二:使用pandas的read_table方法进行读取,pandas是python的一个数据处理的包,功能很强大,提供了许多现成的读取各种文件的方法,像csv文件的read_csv方法,excel文件的read_excel方法等
『玖』 python中读取excel文件表格太大怎么解决
表格太大的时候,需要使用EXCEL自身的VBA来编程进行处理,这时候只要EXCEL能打开文件,就可以进行处理。
未经允许不得转载:山九号 » python打开超大excel文件|python怎么读取excel文件