以xls格式读取、操作和写入数据的包装库。itreads xlsx和xlsm格式

pyexcel-xls的Python项目详细描述


一个让你关注数据,而不是XLS格式,而不是XLS格式的数据,让你关注数据,而不是XLS格式的数据,而不是XLS格式的数据,而不是XLS格式的数据,而不是XLS格式的数据让你关注数据而不是XLS格式的数据而不是XLS格式的数据而不是XLS格式的数据,让你关注数据,而不是XLS格式的数据而不是XLS格式的数据而不是XLS格式的数据而不是XLS格式的数据而不是XLS格式的数据而不是XLS格式的数据而不是XLS格式。一、二、二、三、三、三、三、三、三、三、三、四、四、四、四、四、四、四、四、六、六、六、六、六、六、六、六、六、六。图片::https://raw.githubusercontent.com/pyexcel/pyexcel.github.io/master/images/patreon.png
:目标:https://www.patreon.com/pyexcel

…图片::https://api.bountysource.com/badge/team?团队ID=288537
:目标:https://salt.bountysource.com/teams/chfw pyexcel

…图片::https://travis-ci.org/pyexcel/pyexcel-xls.svg?branch=master
:目标:http://travis ci.org/pyexcel/pyexcel xls

…图像::https://codecov.io/gh/pyexcel/pyexcel xls/branch/master/graph/badge.svg
:目标:https://codecov.io/gh/pyexcel/pyexcel xls

…图片::https://img.shields.io/gitter/room/gitterhq/gitter.svg
:目标:https://gitter.im/pyexcel/lobby



**pyexcel xls**是一个小包装库,可以读取、操作和写入xls格式的数据,它可以从at读取xlsx和xlsm。您可能会将其与"pyexcel<;https://github.com/pyexcel/pyexcel>;"一起使用。


新标志:"检测合并单元格"允许您在所有合并单元格之间传播相同的值。但请注意,这可能会降低其读取性能。

它可能会减慢阅读速度。它只对'xls'文件有效。对于"xlsx"文件,请使用pyexcexxlsx。









=====br====











>安装

====================================================================================================




您可以安装PYEXCEL XLS通过PIP:

…代码块::bash

$pip安装pyexcel xls



代码块::bash


$git clone https://github.com/pyexcel/pyexcel/pyexcel xls.git
$cd pyexcel xls
$python setup.py install







>$cd pyexcel pyexcel xls
$cd pyexcel pyexcel xls

>$cd pyexcel python setup.pypypython setup.pypython安装






支持该项目

=================br/>
如果您的公司PyExcel及其组件成为一个创收产品,请在"patreon<;https://www.patreon.com/bepatron"上支持我?u=5537627>;`
或`赏金来源<;https://salt.bounty source.com/teams/chfw pyexcel>;``维护
项目并进一步开发。


如果您是个人,欢迎您也支持我,无论您想支持多久。作为我的支持者,您将获得
`对pyexcel相关内容的早期访问<;https://www.patreon.com/pyexcel/posts>;` `.

如果您想成为我的"pyexcel pro用户",您的问题将得到优先考虑。

我可以在编码上投入更多的时间,文档和撰写有趣的文章。



用法
===========================================





文件
********************************************************************************








这是将字典写入xls文件的示例代码:


。代码块::python

>;>;从pyexcel导入保存数据
>;>;data=ordereddict();从集合导入ordereddict
>;>;数据。更新({"sheet 1":[[1,2,3],[4,5,6]]})
>;数据。更新({"sheet 2":[["row 1","row 2","row 2"3"]]})
>>gt>gt>gt>>save-u data("your_file.xls文件,data)





>从xls文件中读取数据
************************************************************************************************************************************************************************************************************************



这里是示例代码:<




下面是示例代码:<<

这里是示例代码:<
br/>
…代码-block::python

>;>from pyexcel_xls import get_data
>;>data=get_data("your_file.xls")
>;>import json
>;>print(json.dumps(data))
{"sheet 1":[[1,2,3],[4,5,6]],"sheet 2":[["row 1","row 2","第3行"]}



代码块::python

>;>io=stringio()
>;>保存数据(io,数据)
>;>对io做些事情
>;>实际上,您可能会将其交给您的http响应
>;>;#用于下载







从内存中读取xls的对象
*****************************************************************

从上一示例继续:


。代码块::python

>;\gt;这只是一个例子
>;\gt;实际上,您可能需要处理xls文件上载
>;\gt;从请求中读取的文件。files['your撸xls撸u file']
>;>;data=get撸u data(io)
>;>;打印(json.dumps(data))
{"sheet 1":[[1,2,3],[4,5,6]],"sheet 2":[[7,8,9],[10,11,12]]}



分页功能
*****************************************************************







代码块::python

>>[1,21,31],
…[2,22,32],
…[3,23,33],
…[4,24,34],
…[5,25,35],
…[6,26,36]
…]
>>>表x={
…巨大的":巨大的数据
…}
>>gt;保存数据("great_file.xls",sheetx)


,让我们假装读取部分数据:

……代码块::python

>;>;partial_data=get_data("great_file.xls",start_row=2,row_limit=3)
>;>;打印(json.dumps(partial_data))
{"great":[[3,23,33],[4,24,34],[5,25,35]]}

,您也可以对列执行相同的操作:

代码块::python

>;>;partial_data=get_data("great_file.xls",start_column=1,column_limit=2)
>;>;打印(json.dumps(partial_data))
{"巨大":[[21,31],[22,32],[23,33],[24,34],[25,35],[26,36]}

你可以同时做这两件事:

…代码块::python

>;>;partial_data=get_data("great_file.xls",
…起始行=2,行限制=3,
…start_column=1,column_limit=2)
>;>print(json.dumps(partial_data))
{"巨大":[[23,33],[24,34],[25,35]]}


由于PyExcel版本0.2.2,需要显式导入。相反,
此库是自动加载的。因此,如果要读取XLS格式的数据,安装它就足够了。





代码块::python

>;>;将pyexcel导入为pe
>;>;sheet=pe.get_book(file_name="your_file.xls")
>;>;工作表1:
+--++---+--+

<1 2 3
+--+----+
<4 4 5 6;
+--+---+-+--+-+--+--+--+
>工作表2:
+-----+--->>>------+---+--+--+--+--+----+------+-------+----------+----+--+——+——+——+——+



正在写入XLS文件
***********************************************************************************

以下是示例代码:

代码块::python

>gt>gt>>工作表.另存为"另一个文件.xls"(另一个文件.xls)工作表





>从IO实例中读取信息
***************************************************************************************************************************************************************************



您必须包装二进制内容中的二进制内容,您必须包装二进制内容中的二进制内容内容



您必须包装二进制内容中的二进制内容中的二进制内容,您必须包装二进制内容中的内容内容中的二进制使用stream使xls工作:

…代码块::python

>;>;>;这只是一个说明
>;>;实际上,您可能需要处理xls文件上载
>;>;>;>;>;>;>;>;>;从请求中读取的文件。files['your撸xls撸file']
>;xlsfile="another撸file.xls"
>;>;打开(xlsfile,"rb")作为f:
…内容=f.read()
…r=pe.get_book(file_type="xls",file_content=content)
…打印(r)
……
第1页:
++---+---+

<1 2 2 2 3;
+--+--+--+-----+
<4 5 6;
+-+--+--+--+--+---+---+----+----+

>>>第2页第2页:
第1排第1行第2;第3排第3排第3;
+——+——+——+——+——+



stringio实例
*****************************************************************************************


您需要将stringio实例传递给writer:

……代码块::python

>;>data=[
…[1,2,3],
…[4,5,6]
…]
>;>;io=stringio()
>;>;sheet=pe.sheet(data)
>;>;io=sheet.save庘u to庘memory("xls",io)
>;>;;然后使用io
>;>;>;>;>;>;在现实中,您可能会将其交给http响应下载





















































=========







代码更改的开发步骤。Git克隆https://github.com/pyexcel/pyexcel xls.git
cd pyexcel xls

升级安装工具和pip。它们仅用于开发和测试:

。pip install——升级setuptools pip

,然后安装相关的开发需求:

。pip install-r rnd_requirements.txt(如果存在这样的文件)。pip install-r requirements.txt
pip install-r test s/requirements.txt

完成更改后,请提供测试用例、相关文档
,并更新changelog.rst.

注意:

对于rnd_requirements.txt,通常是在依赖库未释放时创建的。一旦安装了依赖项
(将发布),requirements.txt中的依赖项的未来版本将有效。




建议将单元测试放在测试中。` doctest`的合并只是为了确保文档中的代码示例在不同的开发版本中保持有效。

test.bat

如何更新测试环境并更新文档
---------------------------------


需要执行其他步骤:

。pip安装moban
。Git克隆https://github.com/moremoban/setupmobans.git通用设置
。Git克隆https://github.com/pyexcel/pyexcel-commons.git commons
在`.moban.d`目录中进行更改,然后发出命令`moban`

--------


许多跨pyexcel项目共享的信息,例如:此开发人员指南、许可证信息等存储在`pyexcel commons`project.


what is.moban.d
---------------------------

`.moban.d`存储库的特定元数据。


编写了测试用例。已测试所有代码行。通过所有travis ci构建。如果您的更改比较复杂,请提供相当数量的文档。请更新changelog.rst
。请加入投稿人。rst
。为您的贡献商定新的bsd许可证


已知问题
====

*如果在xls的日期格式字段中键入零,您将获得"01/01/1900"。
*如果在xls的时间格式字段中键入零,您将得到"00:00:00"。



-2018年8月22日` pyexcel 151<;https://github.com/pyexcel/pyexcel/issues/151>;`,阅读细胞
r/>r ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^。` pyexcel 54<;https://github.com/pyexcel/pyexcel/issues/54>;`,book.datemode
应始终传递该工作簿的属性信息。

0.5.6-15.03.2018年3月0.5.5.6-2018年3月1日
,对我国进行了全面的




^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^35;。` pyexcel 120<;https://github.com/pyexcel/pyexcel/issues/120>;`,xlwt不能
保存没有任何页的书。所以,在这种情况下,让我们在
order中提出一个异常以警告开发人员。

0.5.5-2017年11月8日`#25<;https://github.com/pyexcel/pyexcel xls/issues/25>;`,在.xls中检测合并的单元格


0.5.4-2.11.2017
——`#24<;https://github.com/pyexcel/pyexcel xls/issues/24>;`,xlsx格式不能
使用skip_hidden_row_and_column。请改用PYEXCEL XLSX。

0.5.3-2.11.2017
——`#21<;https://github.com/pyexcel/pyexcel xls/issues/21>;`,跳过隐藏行和"跳过隐藏行和列"标志下的列。


0.5.2-2017年10月23日pyexcel`pyexcel 105<;https://github.com/pyexcel/pyexcel/issues/105>;` `,
从安装程序中删除gease需要,由0.5.1引入。
取下python2.6测试支架
。更新其对pyexcel的依赖性,将其对pyexcel的依赖性更新到0.5.3

<0.5.1-20.10.2017年10月10.1-0.5.1-0.5.1-2017年
,并对其进行了全面的:-//




^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^是的。` pyexcel 103<;https://github.com/pyexcel/pyexcel/issues/103>;``在manifest.in中包含
许可证文件,这意味着许可证文件将出现在发布的
tar ball中。


0.5.0-30.08.2017
--

更新了`#20<;https://github.com/pyexcel/pyexcel xls/issues/20>;``在
pyexcel io
中处理。依赖于pyexcel io 0.5.0,它使用cstringio而不是stringio。
因此,在处理内存中的文件时会提高性能。

0.4.1-25.08.2017
——`#20<;https://github.com/pyexcel/pyexcel xls/issues/20>;`,不可扩展的
不可扩展的不可扩展的不可扩展的流
0.4.0-19.06.2017年6月10日
,我们对其进行了全面的更新
/>更新了
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^是的` pyexcel xlsx 15<;https://github.com/pyexcel/pyexcel xlsx/issues/15>;`,关闭
文件句柄
。PyExcel IO插件接口现已更新为使用"lml
<;https://github.com/chfw/lml>;`.

0.3.3-30/05/2017
——`#18<;https://github.com/pyexcel/pyexcel xls/issues/18>;`,将
encoding与其它编码与其它编码与其它编码传递到xlrd。

<0.3.2-18.05.2017年5月1日
,我们对其进行了更新,更新了
,更新了
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;。`#16<;https://github.com/pyexcel/pyexcel xls/issues/16>;`,允许将mmap
作为文件内容传递

0.3.1-16.01.2017
——`#14<;https://github.com/pyexcel/pyexcel xls/issues/14>;``,python 3.6-
不能使用str模式的locale标志
。固定其对PyExcel IO 0.3.0的依赖性

0.3.0-22.12.2016
——`#13<;https://github.com/pyexcel/pyexcel xls/issues/13>;`` _,提示empyty
文件内容
。支持PYEXCEL IO v0.3.0

0.2.3-20.09.2016
——`#10<;https://github.com/pyexcel/pyexcel xls/issues/10>;`,支持
generator作为传入二维数据的成员


<0.2.2-31.08.2016年8月0.2.2.2-0.2.2.2-2016年8月31日
,我们已经加入了
/>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^是的。支持分页。两对:起始行、行限制和起始列,
column-limit帮助您处理大文件。

0.2.1-13.07.2016年7月1-0.2.1.1.1.2016年
月底的中、中、中、中、中、中、中、中、


/>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^是的。`#9<;https://github.com/pyexcel/pyexcel xls/issues/9>;` ` `跳过隐藏的工作表`
。默认情况下,读取所有工作表时跳过隐藏工作表。
按名称或索引读取工作表不受影响。

0.2.0-2016年6月1日默认情况下,`float将被转换为int。` auto_detect_int`,
关闭从"float"到"int"的自动转换的标志。
添加library=pyexcel xls'是为了通知pyexcel在
文件类型有多个插件的情况下使用它而不是
其他库,例如,xlsm

支持pyexcel io 0.2.0的自动导入功能。xlwt现在用于python 2实现,而xlwt future用于python 3


0.1.0-2016年1月17日通过"streaming=true"来获取数据,您将得到二维数组
作为生成器
。也可以通过"data=your_generator"来保存数据。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java通过EventListener更新Hibernate实体   java将每个组合按字母顺序排列   java找不到媒体类型为application/xml+fhir的JAXBContextFinder   java ReactiveCrudePository与R2DBCrudePository   java如何在对arraylist执行某些操作后更新它而不重新启动活动   在NetBeans中,如何更改默认的JDK?   web服务轴心:获取java。RuntimeException:java。lang.UnsupportedClassVersionError:中的版本号不正确。类文件   为一个Atribut java设置多个值以筛选附加列表   如何将参数从jsp传递到java类?   opencv_contrib对java Maven的依赖   java为JOptionPane对话框设置助记符和热键   java安装错误Eclipse:安装失败   java我是如何损坏我的Android密钥库的?   java无arg构造函数或arg构造函数   hadoop Java DKRB5CCNAME不工作   java Android libs错误   java WAR文件未在tomcat 7中启动   java将bean类传输到另一个包   mysql您可以在Java应用程序与Access数据库之间创建连接,并将数据库上载到我的网站吗   java Jetty HTTP日志记录