成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

python读取excel文件

Q1:python怎么读写excel文件

最近用python处理一个小项目,其中涉及到对excel的读写操作,通过查资料及实践做了一下总结,以便以后用。

python读写excel文件要用到两个库:xlrd和xlwt,首先下载安装这两个库。

1、#读取Excel

importxlrd

data = https://www.bazhishi.com/aldyjtapi/xlrd.open_workbook(excelFile)

table = data.sheets()[0]

nrows = table.nrows #行数

ncols = table.ncols #列数

for i in xrange(0,nrows):
rowValues= table.row_values(i) #某一行数据
for item in rowValues:
printitem

2、写Excel文件

往EXCEl单元格写内容,每次写一行sheet:页签名称;row:行内容列表;rowIndex:行索引;

isBold:true:粗字段,false:普通字体

defWriteSheetRow(sheet,rowValueList,rowIndex,isBold):

i = 0

style = xlwt.easyxf(font: bold 1)

#style = xlwt.easyxf(font: bold 0, color red;)#红色字体

#style2 = xlwt.easyxf(pattern: pattern solid, fore_colour yellow; font: bold on;) # 设置Excel单元格的背景色为黄色,字体为粗体

forsvalue inrowValueList:

strValue = https://www.bazhishi.com/aldyjtapi/unicode(str(svalue),utf-8)

ifisBold:

sheet.write(rowIndex,i,strValue,style)

else:

sheet.write(rowIndex,i,strValue)

i = i + 1

写excel文件

defsave_Excel(strFile):

excelFile = unicode(strFile,"utf8")

wbk = xlwt.Workbook()

sheet = wbk.add_sheet(sheet1,cell_overwrite_ok=True)

headList = [标题1,标题2,标题3,标题4,总计]

rowIndex = 0

WriteSheetRow(sheet,headList,rowIndex,True)

fori inxrange(1,11):

rowIndex = rowIndex + 1

valueList = []

forj inxrange(1,5):

valueList.append(j*i)

WriteSheetRow(sheet,valueList,rowIndex,False)

wbk.save(excelFile)

style2 = xlwt.easyxf(pattern: pattern solid, fore_colour yellow; font: bold on;)

在设置上Excel单元格的背景色时,fore_colour支持的颜色是有限的,仅支持一下颜色

aqua 0x31、black 0x08、blue 0x0C
blue_gray 0x36、bright_green 0x0B
brown 0x3C
coral 0x1D
cyan_ega 0x0F
dark_blue 0x12、dark_blue_ega 0x12、dark_green 0x3A
dark_green_ega 0x11、dark_purple 0x1C
dark_red 0x10、dark_red_ega 0x10、dark_teal 0x38、dark_yellow 0x13、gold 0x33、gray_ega 0x17、gray25 0x16、gray40 0x37、gray50 0x17、gray80 0x3F
green 0x11、ice_blue 0x1F
indigo 0x3E
ivory 0x1A
lavender 0x2E
light_blue 0x30
light_green 0x2A
light_orange 0x34、light_turquoise 0x29、light_yellow 0x2B
lime 0x32、magenta_ega 0x0E
ocean_blue 0x1E
olive_ega 0x13、olive_green 0x3B
orange 0x35、pale_blue 0x2C
periwinkle 0x18、pink 0x0E
plum 0x3D
purple_ega 0x14、red 0x0A
rose 0x2D
sea_green 0x39、silver_ega 0x16、sky_blue 0x28、tan 0x2F
teal 0x15、teal_ega 0x15、turquoise 0x0F
violet 0x14、white 0x09、yellow 0x0D"""
另外一种方式是 用pyExcelerator

from pyExcelerator import *# excel 第一行数据excel_headDatas = [u发布时间, u文章标题, u文章链接, u文章简介]
articles =<[br />{u发布时间:u2017年5月9日,
u文章标题:uPython项目实战教程:国内就能访问的google搜索引擎,
u
u文章简介:u大家可以留言、想了解python那个方向的知识、不然我也不知道},
{u发布时间:u2017年5月4日,
u文章标题:u对于学习Django的建议、你知道的有那些,
u文章链接:,
u文章简介:u随着Django1.4第二个候选版的发布,虽然还不支持Python3,但Django团队已经在着手计划中,据官方博客所说,Django1.5将会试验性的支持python3}
]# 定义excel操作句柄excle_Workbook = Workbook()
excel_sheet_name = time.strftime(%Y-%m-%d)
excel_sheet = excle_Workbook.add_sheet(excel_sheet_name)
index = 0#标题for data in excel_headDatas:
excel_sheet.write(0, index, data)
index += 1index = 1#内容for article in articles:
colIndex = 0 for item in excel_headDatas:
excel_sheet.write(index, colIndex, article[item])
colIndex += 1、index += 1#保存test.xlsx到当前程序目录excle_Workbook.save(test.xlsx)# db = mongoDB.mongoDbBase()# db.Get_information_stat()

Q2:python读取excel文件,将每一行都保存为一个列表。每一行对应一个列表。

python读写excel文件要用到两个库:xlrd和xlwt,首先下载安装这两个库。

1、#读取Excel

importxlrd

data = https://www.bazhishi.com/aldyjtapi/xlrd.open_workbook(excelFile)

table = data.sheets()[0]

nrows = table.nrows #行数

ncols = table.ncols #列数

for i in xrange(0,nrows):
rowValues= table.row_values(i) #某一行数据
for item in rowValues:
printitem

2、写Excel文件

往EXCEl单元格写内容,每次写一行sheet:页签名称;row:行内容列表;rowIndex:行索引;

isBold:true:粗字段,false:普通字体

defWriteSheetRow(sheet,rowValueList,rowIndex,isBold):

i = 0

style = xlwt.easyxf(font: bold 1)

#style = xlwt.easyxf(font: bold 0, color red;)#红色字体

#style2 = xlwt.easyxf(pattern: pattern solid, fore_colour yellow; font: bold on;) # 设置Excel单元格的背景色为黄色,字体为粗体

forsvalue inrowValueList:

strValue = https://www.bazhishi.com/aldyjtapi/unicode(str(svalue),utf-8)

ifisBold:

sheet.write(rowIndex,i,strValue,style)

else:

sheet.write(rowIndex,i,strValue)

i = i + 1

写excel文件

defsave_Excel(strFile):

excelFile = unicode(strFile,"utf8")

wbk = xlwt.Workbook()

sheet = wbk.add_sheet(sheet1,cell_overwrite_ok=True)

headList = [标题1,标题2,标题3,标题4,总计]

rowIndex = 0

WriteSheetRow(sheet,headList,rowIndex,True)

fori inxrange(1,11):

rowIndex = rowIndex + 1

valueList = []

forj inxrange(1,5):

valueList.append(j*i)

WriteSheetRow(sheet,valueList,rowIndex,False)

wbk.save(excelFile)

style2 = xlwt.easyxf(pattern: pattern solid, fore_colour yellow; font: bold on;)

在设置上Excel单元格的背景色时,fore_colour支持的颜色是有限的,仅支持一下颜色

aqua 0x31、black 0x08、blue 0x0C
blue_gray 0x36、bright_green 0x0B
brown 0x3C
coral 0x1D
cyan_ega 0x0F
dark_blue 0x12、dark_blue_ega 0x12、dark_green 0x3A
dark_green_ega 0x11、dark_purple 0x1C
dark_red 0x10、dark_red_ega 0x10、dark_teal 0x38、dark_yellow 0x13、gold 0x33、gray_ega 0x17、gray25 0x16、gray40 0x37、gray50 0x17、gray80 0x3F
green 0x11、ice_blue 0x1F
indigo 0x3E
ivory 0x1A
lavender 0x2E
light_blue 0x30
light_green 0x2A
light_orange 0x34、light_turquoise 0x29、light_yellow 0x2B
lime 0x32、magenta_ega 0x0E
ocean_blue 0x1E
olive_ega 0x13、olive_green 0x3B
orange 0x35、pale_blue 0x2C
periwinkle 0x18、pink 0x0E
plum 0x3D
purple_ega 0x14、red 0x0A
rose 0x2D
sea_green 0x39、silver_ega 0x16、sky_blue 0x28、tan 0x2F
teal 0x15、teal_ega 0x15、turquoise 0x0F
violet 0x14、white 0x09、yellow 0x0D"""
另外一种方式是 用pyExcelerator

from pyExcelerator import *# excel 第一行数据excel_headDatas = [u发布时间, u文章标题, u文章链接, u文章简介]
articles =<[br />{u发布时间:u2017年5月9日,
u文章标题:uPython项目实战教程:国内就能访问的google搜索引擎,
u
u文章简介:u大家可以留言、想了解python那个方向的知识、不然我也不知道},
{u发布时间:u2017年5月4日,
u文章标题:u对于学习Django的建议、你知道的有那些,
u文章链接:,
u文章简介:u随着Django1.4第二个候选版的发布,虽然还不支持Python3,但Django团队已经在着手计划中,据官方博客所说,Django1.5将会试验性的支持python3}
]# 定义excel操作句柄excle_Workbook = Workbook()
excel_sheet_name = time.strftime(%Y-%m-%d)
excel_sheet = excle_Workbook.add_sheet(excel_sheet_name)
index = 0#标题for data in excel_headDatas:
excel_sheet.write(0, index, data)
index += 1index = 1#内容for article in articles:
colIndex = 0 for item in excel_headDatas:
excel_sheet.write(index, colIndex, article[item])
colIndex += 1、index += 1#保存test.xlsx到当前程序目录excle_Workbook.save(test.xlsx)# db = mongoDB.mongoDbBase()# db.Get_information_stat()

WWW.baZHIs%hI.cOm

Q3:python怎么读取excel文件

1.读取Excel(需要安装xlrd):
#-*-coding:utf8-*-
importxlrd
fname="reflect.xls"
bk=xlrd.open_workbook(fname)
shxrange=range(bk.nsheets)
try:
sh=bk.sheet_by_name("Sheet1")
except:
print"nosheetin%snamedSheet1"%fname
#获取行数
nrows=sh.nrows
#获取列数
ncols=sh.ncols
print"nrows%d,ncols%d"%(nrows,ncols)
#获取第一行第一列数据
cell_value=https://www.bazhishi.com/aldyjtapi/sh.cell_value(1,1)
#printcell_value
row_list=[]
#获取各行数据
foriinrange(1,nrows):
row_data=https://www.bazhishi.com/aldyjtapi/sh.row_values(i)
row_list.append(row_data)
2.写入Excel(需安装pyExcelerator)
frompyExceleratorimport*
w=Workbook()#创建一个工作簿
ws=w.add_sheet(Hey,Hades)#创建一个工作表
ws.write(0,0,bit)#在1行1列写入bit
ws.write(0,1,huang)#在1行2列写入huang
ws.write(1,0,xuan)#在2行1列写入xuan
w.save(mini.xls)#保存

Q4:如何使用Python读取Excel文件?

其实,在此之前,小编也从来没研究过如何使用Python读取Excel数据,但是本着负责的态度,小编搜索了一下“Python如何读取Excel数据”,得知xlrd库是专门用来读取Excel的,所以小编马上下载下来学习了一番。

中国有句古话说“授人以鱼,不如授人以渔”,所以今天小编不打算直接分享干货,而是通过这个库教大家如何学习使用一个陌生的库。

一、库的安装

通过百度我们得知,已经有现成的处理Excel数据的xlrd库了,所以我们可以直接在终端里输入以下命令下载安装最新的xlrd库。

pip install xlrd

二、查看库文件

Python的第三方库均保存在Python安装目录下的lib文件夹中的site-packages文件夹中,所以我们直接进入该文件夹找到并进入xlrd文件夹。

从图中我们可以看出,xlrd库中文件并不是很多,但是我们应该从哪个文件开始看呢?有一定编程基础的人应该发现__init__.py这个文件了,init在英语中是开始、最初的意思,而Linux系统也是从init这个进程对组成Linux的服务和应用程序进行初始化的,所以一个成熟的库通常都会有一个__init__.py文件,而这个库的运行就是从这个文件开始的。

三、__init__.py代码阅读

打开文件,我们可以看出,该文件主要分为两部分:第一部分导入依赖的库以及xlrd库中的其他文件;第二部分为定义的三个函数。

对于导入的库和文件,我们可以先不看,我们主要看定义的三个函数,看他们的说明以及返回什么。

1、open_workbook

函数open_workbook的说明为:“Open a spreadsheet file for data extraction.”

翻译成中文的意思为:“打开一个用于提取数据的电子表格。”

由此我们可知,使用这个库的第一步应该是从这个函数开始的,即通过该函数打开我们所要处理的Excel文件。

而该函数返回值为bk,即book.open_workbook_xls()的返回值,所以我们下一步的任务就是查看book.py这个文件。

2、dump

函数dump的说明为:“For debugging: dump an XLS files BIFF records in char & hex.”

翻译成中文的意思为:“用于调试:将XLS文件的BIFF记录转储为16进制字符”

看说明我也没弄明白具体是做什么的,所以暂时放过,不研究。

3、count_records

函数count_records的说明为:“For debugging and analysis: summarise the files BIFF records.”

翻译成中文的意思为:“用于调试和分析:总结文件的BIFF记录。”

看说明同样不明白具体是做什么的,所以暂时放过,不研究。

四、book.py代码阅读

book.py有两个类五个函数,由于__init__.py文件中open_workbook函数最后的返回是book.open_workbook_xls(),所以我们先从open_workbook_xls()这个函数读起。

1、open_workbook_xls()

对于函数,我们还是先不管他内部都做了什么,先看返回值是什么。很显然,open_workbook_xls()函数返回值为bk,即Book(),由此我们得知,当我们使用open_workbook函数导入一个Excel文件时,返回的是一个Book类的实例,而我们下一步的任务就是看Book类。

2、Book()

Book()类有30多个方法,我们依旧从__init__()方法开始看。

展开__init__()方法,发现里面只有属性变量的初始化,并没有太多有用的东西。此时我们的线索断了,我们应该怎么办呢?我们不妨跳出这个库,想想Excel表格的结构是什么样的。

用过Excel的同学一定都知道,在Excel中,通常一个文件为一个工作簿,即Book;而一个工作簿可以有多个工作表,即Sheet。

我们回过头来继续看代码发现,Book类中有一个sheets方法,所以我们就从这个sheets方法入手。

sheets方法调用了get_sheet方法,返回_sheet_list列表,我们继续看get_sheet方法

从get_sheet方法中我们可以得知_sheet_list列表的元素为sh,方法的返回值也为sh,即sheet.Sheet()——工作表。

至此,我们已经掌握以下三点内容:

使用open_workbook函数导入Excel文件,得到Book工作簿实例

通过Book工作簿的sheets方法我们可以获取Book工作簿的所有sheet工作表列表

通过Book工作簿的get_sheet方法我们可以获取Book工作簿的指定的某个sheet工作表

由于数据都是存储在工作表中的,所以我们只要继续研究sheet.py文件就可以弄明白如何将数据提取出来了。

五、sheet.py代码阅读

sheet.py文件中Sheet类是我们研究的重点,所以我们首先看这个类。

还是一样的流程,先看__init__()方法,里面同样是一些属性变量初始化定义。

然后我们会发现几个带values字样的方法:

1、cell_value

根据说明我们可以知道,该方法可以得到指定单元格的数值。

2、row_values

根据说明我们可以知道,该方法可以得到指定行的数值。

3、col_values

根据说明我们可以知道,该方法可以得到指定列的数值。

六、总结

使用xlrd库读取Excel文件有以下几个步骤:

1、使用open_workbook函数导入Excel文件,得到Book工作簿实例

book = xlrd.open_workbook(./test.xls)

2、通过Book工作簿的sheets或get_sheet方法获取Book工作簿的sheet工作表

sheet = book.sheets()[0]

3、通过sheet工作表的cell_value、row_values或col_values方法获取相关数值

row_values = sheet.row_values(1)

今天我们通过对xlrd库的解读跟大家分享了如何使用Python读取Excel文件,并教给大家如何学习使用一个陌生的库。由于篇幅有限,xlrd库的大部分用法文中并没有讲到,不过,既然大家已经知道如何学习一个陌生的库了,xlrd库的用法就由大家自己来摸索吧!如果您觉得小编还有一点点小能力,想学习更多的Python或者数据可视化的东西,关注我吧!

猜你喜欢

更多