python中xlwt和xlrd库使用分析

合集下载

Python操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据

Python操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据

Python操作Excel之通过xlutils实现在保留原格式的情况下追加
写⼊数据
在Python操作Excel 的模块有 xlrd、xlwt、xlutils等。

xlrd:读取Excel⽂件数据
xlwt:写⼊Excel 数据,缺点是Excel格式⽆法复⽤,为了⽅便⽤户,写⼊的话,⽐较推荐xlutils模块,它可以可复制原excel格式
#coding=utf-8
import xlrd,xlwt
from xlutils.copy import copy
#读取⽂件
read_file = xlrd.open_workbook(file_path,formatting_info=True)
#参数注释:
#file_path:⽂件路径,包含⽂件的全名称
#formatting_info=True:保留Excel的原格式
#将⽂件复制到内存
write_data = copy(read_file)
#读取复制后⽂件的sheet1
write_save = write_data.get_sheet(0)
#写⼊数据
write_save.write(x,y,value)
#参数注释:
#x,y:写⼊⽬标格的位置坐标
#value:写⼊数据
#保存写⼊数据后的⽂件到原⽂件路径
write_data.save(self.file_path)
这⾥要注意的是: xlrd模块0.8版本后不⽀持以xlsx为后缀名⽂件,所以使⽤这个⽅法的时候,excel要⽤xls格式的,不然会导致保存的⽂件⽆法打开。

【整理】Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文...

【整理】Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文...

【整理】Python中,添加写⼊数据到已经存在的Excel的xls⽂件,即打开excel⽂...【整理】Python中,添加写⼊数据到已经存在的Excel的xls⽂件,即打开excel⽂件,写⼊新数据2013 年 1 ⽉ 16 ⽇下午 1:22crifan已有2890⼈围观3个评论背景Python中,想要打开已经存在的excel的xls⽂件,然后在最后新的⼀⾏的数据。

折腾过程1.找到了参考资料:writing to existing workbook using xlwt其实是没有直接实现:打开已有的excel⽂件,然后在⽂件最后写⼊,添加新数据的函数的。

只不过,可以利⽤:Working with Excel Files in Python中的库,组合实现。

2. writing to existing workbook using xlwt给出了⽰例代码:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20rom xlutils.copy import copy # /pypi/xlutilsfrom xlrd import open_workbook # /pypi/xlrdfrom xlwt import easyxf # /pypi/xlwtSTART_ROW =297# 0 based (subtract 1 from excel row number)col_age_november =1col_summer1 =2col_fall1 =3rb =open_workbook(file_path,formatting_info=True)r_sheet =rb.sheet_by_index(0) # read only copy to introspect the filewb =copy(rb) # a writable copy (I can't read values out of this, only write to it) w_sheet =wb.get_sheet(0) # the sheet to write to within the writable copyfor row_index in range(START_ROW, r_sheet.nrows):age_nov =r_sheet.cell(row_index, col_age_november).valueif age_nov ==3:#If 3, then Combo I 3-4 year old for both summer1 and fall1w_sheet.write(row_index, col_summer1, 'Combo I 3-4 year old')w_sheet.write(row_index, col_fall1, 'Combo I 3-4 year old')22wb.save(file_path +'.out'+os.path.splitext(file_path)[-1]) 3. 刚⼜看到,有更简洁的代码:1 2 3 4from xlutils.copy import copy w =copy('book1.xls')w.get_sheet(0).write(0,0,"foo") w.save('book2.xls')4.现在打算去试试。

python用openpyxl操作excel

python用openpyxl操作excel

python⽤openpyxl操作excelpython操作excel⽅法1)⾃⾝有Win32 COM操作office但讲不清楚,可能不⽀持夸平台,linux是否能⽤不清楚,其他有专业处理模块,如下2)xlrd:(读excel)表,xlrd读⼤表效率⾼于openpyxl3)xlwt:(写excel)表,xlrd和xlwt对版本上兼容不太好,很多新版excel有问题。

新版excel处理:openpyxl(可读写excel表)专门处理Excel2007及以上版本产⽣的xlsx⽂件,xls和xlsx之间转换容易注意:如果⽂字编码是“gb2312” 读取后就会显⽰乱码,请先转成Unicode安装openpyxl1)下载openpyxl模块:https:///pypi/openpyxl2)解压到指定⽂件⽬录:tar -xzvf openpyxl.tar.gz3)进⼊⽬录,找到setup.py⽂件,执⾏命令:python setup.py install如果报错No module named setuptools 就使⽤命令“easy_install openpyxl”,easy_install for win32,会⾃动安装setuptools。

这⾥注意,如果不能⾃动安装,基本上python的模块都通过命令 python 模块名.py install 来安装,如果setuptools模块没有,直接去官⽹下载,然后前⾯命令安装就可以了4)处理图⽚还需要安装pillow(PIL)To be able to include images (jpeg, png, bmp,...) into an openpyxl file, you will also need the “pillow” library that can be installed with:pip install pillowpthon学习资料python 学习⼩组/group/show/368/page/4官⽹:https:///pypi/openpyxlhttp://openpyxl.readthedocs.io/en/default/good:/suofiya2008/article/details/6284208/zzukun/article/details/49946147/topics/0/501/501962.htmlopenpyxl的使⽤openpyxl定义多种数据格式最重要的三种:NULL空值:对应于python中的None,表⽰这个cell⾥⾯没有数据。

python使用xlrd读取excel数据时,整数变小数的解决办法

python使用xlrd读取excel数据时,整数变小数的解决办法
有个比较简单的就是在数字和日期的单元格内容前加上一个英文的逗号即可
python使用 xlrd读取 excel数据时,整数变小数的解决办法
python使用xlrd读取excel数据时,整数变小数:
解决方法: 1.有个比较简单的就是在数字和日期的单元格内容前加上一个英文的逗号即可。如果数据比较多,也可以批量加英文逗号的前缀(网上都有 方法)。(这种比较适合数据量较少的时候,如果数据量比较多,建议使用方法2) 2.通过程序代码判断单元格内容的ctype来解决 实例: for i in range(rows):
cell = int(cell) # 浮点转成整型
print(cel0: continue
row_content = [] for j in range(cols-1):
ctype = sheet.cell(i, j).ctype # 表格的数据类型 cell = sheet.cell_value(i, j) if ctype == 2 and cell % 1 == 0.0: # ctype为2且为浮点

xlrd读取单元格

xlrd读取单元格

xlrd读取单元格摘要:1.xlrd 简介2.xlrd 的安装与使用3.xlrd 读取单元格的方法4.xlrd 的优点与局限性正文:一、xlrd 简介xlrd 是一个Python 库,用于读取和解析Excel 文件。

它支持Excel 97/2000/2003文件格式,并且可以处理.xls和.xlsx文件。

xlrd库的主要功能是读取单元格数据、单元格格式、公式、图表等,使得用户可以方便地处理Excel文件。

二、xlrd 的安装与使用在使用xlrd 库之前,需要先安装它。

可以使用pip 命令进行安装,如下所示:```pip install xlrd```安装完成后,可以通过import 语句引入xlrd 库,然后调用相应的函数来读取Excel 文件。

例如:```pythonimport xlrd# 打开工作簿workbook = xlrd.open_workbook("example.xls")# 获取工作簿中的所有工作表sheets = workbook.sheet_list# 遍历工作表for sheet in sheets:# 读取单元格数据cell_value = sheet.cell(0, 0).valueprint(cell_value)```三、xlrd 读取单元格的方法xlrd 提供了多种方法来读取单元格,下面介绍几种常用的方法:1.使用cell 函数:cell 函数可以读取指定单元格的数据,例如:```pythoncell_value = sheet.cell(0, 0).value```2.使用cell_value 函数:cell_value 函数可以读取指定单元格的数据,但它返回的是一个列表,例如:```pythoncell_value_list = sheet.cell_value(0, 0)```3.使用read_cells 函数:read_cells 函数可以读取指定范围内的所有单元格数据,例如:```pythoncells_values = sheet.read_cells(0, 0, 1, 1)```四、xlrd 的优点与局限性xlrd 库的优点在于它可以快速、方便地读取Excel 文件,并且支持多种文件格式。

python中关于openpyxl库的用法

python中关于openpyxl库的用法

python中关于openpyxl库的用法Python是一种功能强大且流行的编程语言,它具有许多库和模块,可以帮助开发者加快开发进程。

其中一个非常有用的库是openpyxl,它是一个专门用于处理Excel文件的库。

在本文中,我们将一步一步地介绍openpyxl库的用法,以及如何使用它来读取、写入和操作Excel文件。

第一步:安装openpyxl安装openpyxl库非常简单,只需在终端中运行以下命令:pip install openpyxl确保你的Python环境已经安装了pip,这样你就可以使用pip来安装openpyxl库。

第二步:导入openpyxl安装完openpyxl之后,我们需要在Python脚本中导入它。

使用以下代码导入openpyxl:pythonimport openpyxl现在我们可以开始使用openpyxl库来处理Excel文件了。

第三步:打开和创建Excel文件在openpyxl中,我们使用`load_workbook()`函数来打开一个已存在的Excel文件,如下所示:pythonwb = openpyxl.load_workbook('example.xlsx')这里我们将文件名传递给`load_workbook()`函数,它将返回一个Workbook对象(表示Excel文件)。

如果文件不存在,则会引发一个异常。

如果要创建一个新的Excel文件,可以使用以下代码:pythonwb = openpyxl.Workbook()这将创建一个名为"Workbook"的新Excel文件对象。

第四步:选择工作表在打开一个Excel文件之后,我们需要选择我们要操作的工作表。

默认情况下,openpyxl会选择第一个工作表。

我们可以使用以下代码获取当前选定的工作表对象:pythonsheet = wb.active如果我们想选择一个特定的工作表,可以通过索引或名称来选择工作表。

python使用openpyxl操作Excel表格-工作簿与工作表的创建

python使⽤openpyxl操作Excel表格-⼯作簿与⼯作表的创建python使⽤openpyxl操作Excel表格概念相关的库:xlrd库:从excel中读取数据,⽀持xls、xlsxxlwt库:对excel进⾏修改操作,不⽀持对xlsx格式的修改xlutils库:在xlw和xlrd中,对⼀个已存在的⽂件进⾏修改。

openpyxl:主要针对xlsx格式的excel进⾏读取和编辑。

Excel中的对象:WorkBook:⼯作簿对象Sheet:表单对象Cell:表格对象安装openpyxl库:pip install openpyxl⼯作簿的创建以及⼯作表的修改# 创建⼯作簿,使⽤openpyxl的Workbook类创建实例# 从openpyxl包中导⼊Workbook⽤于创建⼯作簿from openpyxl import Workbook# 从openpyxl包中导⼊load_workbook⽤于读取已有的⼯作簿from openpyxl import load_workbook# 使⽤Workbook()实例化⼀个对象wb,默认⽣成⼀个sheet名词的⼯作表wb = Workbook()# 修改默认sheet表的名称,使⽤wb.active获取活动表,默认只有⼀个ws = wb.activeprint('默认表名称',ws)ws.title = '修改默认sheet表名称'print('修改后表名称',ws)# 在⼯作簿中新建⼀个⼯作表,使⽤create_sheet()⽅法,第⼀个参数是⼯作表的名称,第⼆个是索引位置,0表⽰第⼀个ws_1 = wb.create_sheet('第⼆个表',1)# 保存我们创建的⼯作表和⼯作簿到当前⽬录下,使⽤save()⽅法,参数为保存的⼯作簿名称wb.save('Mytest.xlsx')# 最后关闭⼯作簿,使⽤close()⽅法wb.close()。

xlwt单元格格式-概述说明以及解释

xlwt单元格格式-概述说明以及解释1.引言1.1 概述在Excel文件的处理中,我们经常需要对单元格的格式进行设置,以满足不同的数据需求和展示效果。

而xlwt模块是一个Python库,提供了对Excel文件进行创建、写入和格式设置的功能。

通过xlwt模块,我们可以轻松地创建Excel文件,并对单元格进行各种格式化操作。

单元格格式主要包括字体、颜色、对齐方式、边框等,它们直接影响到Excel文件中数据的呈现效果和可读性。

对于不同的数据类型和需求,我们可以根据实际情况设置单元格的格式,从而提高数据的展示效果和可视化程度。

在本文中,我们将详细介绍如何使用xlwt模块进行单元格格式的设置。

首先,我们会简要介绍xlwt模块的基本功能和使用方法。

然后,我们将重点讨论单元格格式的基本设置,包括字体样式、背景颜色、边框样式、对齐方式等。

通过具体的示例和操作步骤,帮助读者快速掌握xlwt模块中单元格格式的使用技巧。

本文旨在帮助读者深入了解xlwt模块的单元格格式设置功能,并能够灵活应用到实际的Excel文件处理中。

同时,通过本文的学习,读者还可以进一步拓展相关的知识,提高对Excel文件处理的技术水平。

接下来,我们将首先介绍xlwt模块的基本概念和特点,为读者打下坚实的基础。

随后,我们将详细探讨单元格格式的基本设置方法和常用技巧,帮助读者快速上手。

最后,我们将总结本文的内容,并展望xlwt模块在Excel文件处理中的广阔应用前景。

让我们一起开始这个有趣而实用的xlwt单元格格式之旅吧!1.2文章结构1.2 文章结构在本文中,我们将围绕着xlwt模块中的单元格格式展开讨论。

文章将分为引言、正文和结论三个部分。

在引言部分,我们将首先对xlwt模块进行概述,介绍xlwt模块的基本功能和用途。

然后,我们将给出整篇文章的结构,简要介绍各个部分的内容和目的。

最后,我们会明确阐述本文的目的,即通过对xlwt模块的单元格格式的深入探讨,帮助读者更好地了解和应用该模块。

nc数据读取并转换为excel的方法

数据对于现代社会而言具有重要的意义,尤其是在信息化时代,大数据的应用越来越广泛。

在数据分析和处理过程中,Excel是一种常用的工具,将数据读取并转换为Excel格式具有重要的意义。

在数据分析过程中,为了更好地利用数据,我们需要将数据从数据库或其他数据源中读取出来,并将其转换为Excel表格,在Excel中进行进一步的处理和分析。

以下将介绍一些常见的方法和技巧,来实现将NC数据读取并转换为Excel的操作。

一、数据读取方法1. 文件读取NC数据通常保存在文件中,我们可以使用Python的pandas库来读取这些文件。

pandas是一个开源的、易于使用的数据分析工具,它提供了丰富的数据结构和数据分析工具,包括读取和写入不同格式的数据的功能。

通过pandas库,我们可以使用read_csv()函数来读取CSV格式的数据文件,或者使用read_excel()函数来读取Excel格式的数据文件。

在读取NC数据时,我们可以使用pandas的read_csv()函数来将NC数据读取到DataFrame中,并进行进一步的处理。

2. 数据库读取除了文件读取外,我们还可以直接从数据库中读取NC数据。

在实际应用中,数据通常保存在关系型数据库中,如MySQL、SQL Server 等。

我们可以使用Python的pandas库结合SQLAlchemy来实现从数据库中读取数据,并将其转换为Excel格式。

通过SQLAlchemy库,我们可以连接到数据库并执行SQL查询,将查询结果保存到DataFrame中,然后使用pandas的to_excel()函数将DataFrame中的数据保存为Excel文件。

3. API接口读取在一些特殊的情况下,NC数据可能通过API接口提供。

我们可以使用Python的requests库来调用API接口,并将返回的数据转换为Excel格式。

通过requests库,我们可以向API接口发起请求,获取数据,并将其保存为Excel文件。

安装xlrd库说明文档

6.启动MyEclipse 10,在菜单栏点击window->preferences 在左边的列表中选择 PyDev->Interpreter – Python.如下图。
7.在右边选择Libraries,点击New Floder.
7.选择python安装路径下的xlrd ,点击确定 例如D:\Python27\Lib\site-packages\xlrd
8.如果在Libraries中出现有xlrd表示择new,输入xlrd,点击ok,如果在框里出现xlrd,再次点击apply。
10.在代码中加入import xlrd 即可使用该库
文档之家的所有文档均为用户上传分享文档之家仅负责分类整理如有任何问题可通过上方投诉通道反馈
安装 xlrd库说明文档
Python 第三方读excel库xlrd的安装方法 1.下载好xlrd库包 2.解压文件 3.点击开始,输入cmd,回车 4.进入到解压文件路径,输入setup.py install 例:C:\Users\user\Desktop\xlrd-0.9.3\setup.py install 5.出现类似截图的N行,表示安装成功
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

python中使用xlrd、xlwt操作excel表格详解 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2015-01-29 我要评论 这篇文章主要介绍了python中使用xlrd、xlwt操作excel表格详解,python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库,需要的朋友可以参考下

最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究"(用此一词让我觉得颇有成就感)之后,基本解决了日常所需。主要记录使用过程的常见问题及解决。 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。可从这里下载https://pypi.python.org/pypi。下面分别记录python读和写excel. python读excel——xlrd 这个过程有几个比较麻烦的问题,比如读取日期、读合并单元格内容。下面先看看基本的操作: 首先读一个excel文件,有两个sheet,测试用第二个sheet,sheet2内容如下:

python 对 excel基本的操作如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # -*- coding: utf-8 -*- import xlrd import xlwt from datetime import date,datetime

def read_excel():

# 打开文件 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 workbook = xlrd.open_workbook(r'F:\demo.xlsx') # 获取所有sheet print workbook.sheet_names() # [u'sheet1', u'sheet2'] sheet2_name = workbook.sheet_names()[1]

# 根据sheet索引或者名称获取sheet内容

sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始 sheet2 = workbook.sheet_by_name('sheet2')

# sheet的名称,行数,列数

print sheet2.name,sheet2.nrows,sheet2.ncols

# 获取整行和整列的值(数组)

rows = sheet2.row_values(3) # 获取第四行内容 cols = sheet2.col_values(2) # 获取第三列内容 print rows print cols

# 获取单元格内容

print sheet2.cell(1,0).value.encode('utf-8') print sheet2.cell_value(1,0).encode('utf-8') print sheet2.row(1)[0].value.encode('utf-8')

# 获取单元格内容的数据类型 print sheet2.cell(1,0).ctype

if __name__ == '__main__':

read_excel() 运行结果如下:

那么问题来了,上面的运行结果中红框框中的字段明明是出生日期,可显示的确实浮点数。好的,来解决第一个问题: 1、python读取excel中单元格内容为日期的方式 python读取excel中单元格的内容返回的有5种类型,即上面例子中的ctype: ? 1 ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

即date的ctype=3,这时需要使用xlrd的xldate_as_tuple来处理为date格式,先判断表格的ctype=3时xldate才能开始操作。现在命令行看下: ?

1 2 3 4 5 6 7 8 9 10

>>> sheet2.cell(2,2).ctype #1990/2/22 >>> sheet2.cell(2,1).ctype #24 >>> sheet2.cell(2,0).ctype #小胖 >>> sheet2.cell(2,4).ctype #空值(这里是合并单元格的原因) >>> sheet2.cell(2,2).value #1990/2/22 11 12 13 14 15

33656.0 >>> xlrd.xldate_as_tuple(sheet2.cell_value(2,2),workbook.datemode) (1992, 2, 22, 0, 0, 0) >>> date_value = xlrd.xldate_as_tuple(sheet2.cell_value(2,2),workbook.datemode) >>> date_value (1992, 2, 22, 0, 0, 0) >>> date(*date_value[:3]) datetime.date(1992, 2, 22) >>> date(*date_value[:3]).strftime('%Y/%m/%d') '1992/02/22' 即可以做下简单处理,判断ctype是否等于3,如果等于3,则用时间格式处理: ?

1 2 3

if (sheet.cell(row,col).ctype == 3):

date_value = xlrd.xldate_as_tuple(sheet.cell_value(rows,3),book.datemode) date_tmp = date(*date_value[:3]).strftime('%Y/%m/%d') 那么问题又来了,上面 sheet2.cell(2,4).ctype 返回的值是0,说明这个单元格的值是空值,明明是合并的单元格内容"好朋友",这个是我觉得这个包功能不完善的地方,如果是合并的单元格那么应该合并的单元格的内容一样,但是它只是合并的第一个单元格的有值,其它的为空。 ?

1 2 3 4 5

>>> sheet2.col_values(4) [u'\u5173\u7cfb', u'\u597d\u670b\u53cb', '', u'\u540c\u5b66', '', '', 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 u'\u4e00\u4e2a\u4eba', ''] >>> for i in range(sheet2.nrows): print sheet2.col_values(4)[i] 关系 好朋友

同学

一个人

>>> sheet2.row_values(7)

[u'\u65e0\u540d', 20.0, u'\u6682\u65e0', '', ''] >>> for i in range(sheet2.ncols): print sheet2.row_values(7)[i] 无名 20.0 暂无

>>>

2、读取合并单元格的内容 这个是真没技巧,只能获取合并单元格的第一个cell的行列索引,才能读到值,读错了就是空值。 即合并行单元格读取行的第一个索引,合并列单元格读取列的第一个索引,如上述,读取行合并单元格"好朋友"和读取列合并单元格"暂无"只能如下方式: ? 1 2 3 4 5 6 7

>>> print sheet2.col_values(4)[1] 好朋友 >>> print sheet2.row_values(7)[2] 暂无

>>> sheet2.merged_cells # 明明有合并的单元格,为何这里是空

[] 疑问又来了,合并单元格可能出现空值,但是表格本身的普通单元格也可能是空值,要怎么获取单元格所谓的"第一个行或列的索引"呢? 这就要先知道哪些是单元格是被合并的! 3、获取合并的单元格 读取文件的时候需要将formatting_info参数设置为True,默认是False,所以上面获取合并的单元格数组为空, ?

1 2 3 4

>>> workbook =

xlrd.open_workbook(r'F:\demo.xlsx',formatting_info=True) >>> sheet2 = workbook.sheet_by_name('sheet2') >>> sheet2.merged_cells [(7, 8, 2, 5), (1, 3, 4, 5), (3, 6, 4, 5)] merged_cells返回的这四个参数的含义是:(row,row_range,col,col_range),其中[row,row_range)包括row,不包括row_range,col也是一样,即(1, 3, 4, 5)的含义是:第1到2行(不包括3)合并,(7, 8, 2, 5)的含义是:第2到4列合并。 利用这个,可以分别获取合并的三个单元格的内容: ?

1 2 3 4 5 6

>>> print sheet2.cell_value(1,4) #(1, 3, 4, 5) 好朋友 >>> print sheet2.cell_value(3,4) #(3, 6, 4, 5)

相关文档
最新文档