以ods格式读取、操作和写入数据的包装库

pyexcel-ods的Python项目详细描述


一个值得关注的是数据,而不是ODS格式的数据,而不是ODS格式的数据,让你关注数据,而不是ODS格式的数据,而不是ODS格式的数据,而不是ODS格式的数据,而不是ODS格式的数据,这一点让你关注的是数据,而不是ODS格式的数据,而不是ODS格式的数据,而不是ODS格式的数据,而不是ODS格式的数据,而不是ODS格式的数据,而不是ODS格式的数据,而不是ODS格式。=====


图片::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-ods.svg?branch=master
:目标:http://travis ci.org/pyexcel/pyexcel ods

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

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



**pyexcel ods**是一个小型的包装库,可以使用python 2.6和python2.7以
ods格式读取、操作和写入数据。您可能会将它与
`pyexcel<;https://github.com/pyexcel/pyexcel>;``一起使用。
`pyexcel-ods3<;https://github.com/pyexcel/pyexcel-ods3>;`` uu是一个依赖ezodf和lxml的姊妹库。` pyexcel odsr<;https://github.com/pyexcel/pyexcel odsr>;`\u
是另一个没有外部依赖关系的姊妹库,但ods只读取


已知的约束
===


不支持字体、颜色和图表。

==================一、二、二、二、三、三、三、三、三、三、三、三、四、四、四、四、四、四、四、四、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六代码块::bash

$pip安装pyexcel ods



代码块::bash


$git克隆http://github.com/pyexcel/pyexcel/pyexcel ods.git
$cd pyexcel ods
$python setup.py安装







$cd pyexcel-pyexcel ods
$pypython setup.pypy安装

$cd pyexcel pyexcel ods
$pypypython setup.python安装












>
如果贵公司已嵌入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用户",您的问题将得到优先考虑。

/>在编写代码、文档和撰写有趣的文章方面多花点时间。



--——

写入ODS文件
********************************************************************************************







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

……代码块::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("您的存储文件.ods.ods.ods",data)





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



这里是示例代码:



下面是示例代码:
下面是示例代码:<>
代码块::python

>;>from pyexcel_ods import get_data
>;>data=get_data("your_file.ods")
>>gt;导入json
>>>gt;打印(json.dumps(data))
{{"第1页":[[1,2,2,3],[4,5,5,6],"第2页":[["第1行","第2行","第3行"]}



>>导入json
>导入json
>导入json
>导入json
>

>将ODS写入内存
>*********************************************************************************************************************************************************************************************这里是将字典写入ods文件的足够代码:

…代码块::python

>;>;从pyexcel导入保存数据
>;>;data=ordereddict()
>;>;数据更新({"sheet 1":[[1,2,3],[4,5,6]]})
>;>;数据更新({"sheet 2":[[7,8,9],[10,11,12]]})
>;&io=stringio(
>;>保存数据(IO,数据)
>;>对IO做些事情
>;>实际上,您可能会将它交给http响应
>;>下载对象







********************************************************************************

继续前面的示例:

…代码块::python

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




>分页特征
**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************

2017年1月30日特别通知:由于潜在第三方的限制ty
库,它将在返回分页数据之前读取整个文件。因此,在一天结束时,唯一的好处是从reading
函数返回的数据更少。不会有大的性能改进。

尽管如此,请安装"pyexcel odsr<;https://github.com/pyexcel/pyexcel odsr>;`
,它在分页方面提供了更好的性能。

假设下面的文件是一个巨大的ods文件:

。代码块::python

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


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

……代码块::python

>;>;partial_data=get_data("great_file.ods",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.ods",start_column=1,column_limit=2)
>;>;打印(json.dumps(partial_data))
{"巨大":[[21,31],[22,32],[23,33],[24,34],[25,35],[26,36]}
E:

…代码块::python

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


作为一个pyexcel插件,不再需要显式导入,因为pYexcel版本0.2.2。相反,
此库是自动加载的。因此,如果您想读取ods格式的数据,安装它就足够了。





代码块::python

>;>;将pyexcel导入为pe
>;>;sheet=pe.get_图书(文件名为"你的文件.ods")
>>gt;工作表
工作表1:
>+--++---++
1 2 3;
>>>+--++--++--++--++
4 4 5 6;
+---++-++--++-++-++-++
;工作表2:
>>>---++----++----++----++------++---
>>
;工作表2:工作表2:
>>>>>>>>>>>第1行第2行第3行---+--——+



正在写入ODS文件
**************************************************************************************

以下是示例代码:


。代码块::python

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





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



您必须用工作表包装二进制内容,用工作表中的二进制内容,用工作表中的另一个文件.另一个文件.ods另存为(另一个文件.ods.ods.ods).

…代码块::python

>;>;>;这只是一个例子;实际上,您可能需要处理ods文件上载
>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;ods file;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;打开(odsfile,"rb")作为f:
…内容=f.read()
…r=pe.get_book(file_type="ods",file_content=content)
…打印(r)
……
第1页:
++---+---+

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

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



gio实例
*****************************************************************************************


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

。代码块::python

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





















































=========







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

升级安装工具和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`只用于确保文档中的代码示例在不同的开发版本中保持有效。


在linux/unix系统上,请启动如下测试:

$make


>在windows系统上,请发出以下命令::

>;test.bat

如何更新测试环境和更新文档
——pip安装moban
。Git克隆https://github.com/moremoban/setupmobans.git通用设置
。Git克隆https://github.com/pyexcel/pyexcel-commons.git commons
在`.moban.d`目录中进行更改,然后发出命令`moban`



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

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


编写了测试用例。已测试所有代码行。通过所有travis ci构建。如果您的更改比较复杂,请提供相当数量的文档。运行"make format"以确认PyExcel组织的编码风格
。请更新changelog.rst
。请加入投稿人。rst
。为您的贡献重新商定新的BSD许可证


credits

=======================================================================
odsreader最初由"马可·康帝"撰写,作者是"马可·康帝"http://github.com/marcoconti83/readodododfpy>;`==============================================u



更改日志
================================================================================

0.5.6 - 19.03.2019
--------------------------------------------------------------------------------

added
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

`#32<;https://github.com/pyexcel/pyexcel ods/issues/32>;``修复odfpy pinning
`#33<;https://github.com/pyexcel/pyexcel ods/issues/33>;`,修复I586上的整数精度错误


0.5.5-16.03.2019
——^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

`#32<;https://githhub.com/pyexcel/pyexcel-ods/issues/32>;` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定固定^^^^^^^^
`#30<;https://github.com/pyexcel/pyexcel ods/issues/30>;``如果长类型将不
写入ods。请使用字符串类型。如果整数等于或
大于10乘以16的幂,则它也不会写入ods。在这两种情况下,都会提高整数的接收错误率。

>0.5.3-未发布
,已经过了一些新的



br/>增加了
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^35;。`#24<;https://github.com/pyexcel/pyexcel ods/issues/24>;``忽略单元格
中的注释(<;office:comment>;)。`#27<;https://github.com/pyexcel/pyexcel ods/issues/27>;``当缺少货币类型时引发异常
。将ODFPY版本固定在1.3.5.

0.5.2-23.10.2017
——pyexcel`pyexcel 105<;https://github.com/pyexcel/pyexcel/issues/105>;` `,
从安装程序中删除gease需要,由0.5.1引入。
移除Python2.6测试支持

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


0.5.0-30.08.2017
r/>更新
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

依赖于pyexcel io 0.5.0,它使用cstringio而不是stringio。
因此,在处理内存中的文件时,性能会得到提高。

重新定位
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^所有的ods类型转换代码都存在于pyexcel/io.service模块

<0.4.1-25.08.2017年8月0.4.1-0.4.1-0.4.1-2017年8月
,我们已经对我们进行了更新
/>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^是的。` pyexcel 23<;https://github.com/pyexcel/pyexcel/issues/23>;`,处理http响应给出的不可查看流
。而对于22 ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `^^^^^^^^^^^^^^^^^^^^^

。` pyexcel 14<;https://github.com/pyexcel/pyexcel/issues/14>;`,关闭文件
句柄
。现在更新的pyexcel-io插件接口现在更新为使用`lml
<;https://githhub.com/chfw/lml>;` ` ` ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

问题``pyexcel ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
issue`pyexcel 17<;https://github.com/pyexcel/pyexcel/issues/17>;`` u,忽略空的新

。问题`pyexcel ` ` ` ` ` ` ` ` ` ` ` `,
pt2888h0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000^^^^^^^^^^^^^^^^^^^^^^^^^

。识别货币类型

0.3.0-22.12.2016
——利用pyexcel的0.3.0版本对代码进行重构,使用pyexcel的0.3.0.3.0版本对代码进行重构
<0.2.2.2-24.2016年10月10日
,我们已经对其进行了更新,更新了
/>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^是的issue`pyexcel 14<;https://github.com/pyexcel/pyexcel/issues/14>;``读取具有非统一列重复属性的ODS文件时出错。


0.2.1-31.08.2016
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

支持分页。两对:start_row、row_limit和start_column,
column_limit帮助您处理大文件。
。使用ODFPY 1.3.3作为强制包。官方支持python 3

0.2.0-01.06.2016
——默认情况下,"float"将在合适的位置转换为"int"。` auto_detect_int`,
关闭从"float"到"int"的自动转换的标志。
添加library=pyexcel ods'以通知pyexcel在安装了多个插件的情况下使用它而不是
其他库。^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

支持pyexcel io 0.2.0

<0.1.1-30.01.2016
,我们已经加入了
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'"流"是一个额外的选项,用于获取数据。只有当"streaming"显式设置为true时,数据才会由生成器组成,因此会破坏现有代码。使用yield in to_数组并返回生成器
。支持多行文本单元格5
。从pyexcel-ods3 pyexcel/pyexcel-ods3的功能迁移5


与PyExcel IO 0.1.1的兼容性

0.0.12-10.10.2015
——错误修复:多余的尾随列,其值为空

0.0.11-26.09.2015
——完成libreoffice datetime字段的修复工作

0.0.10-15.09.2015
——修复错误:日期字段可能有从libreoffice的datetime的datetime,从libreoffice的datetime

<0.0.9-0.0.9-21.08.2015年8月0.0.9-21.08.2015
,目前已经对我们进行了更新



/>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^是的错误修复:utf-8字符串抛出unicode异常

0.0.8-28.06.2015
----------更新的我们依赖的是0.9.6,以避免出现1.3.0的错误,我们依赖的是0.9.6,以避免1.3.0的错误,我们依赖的是0.9.6,我们依赖的是0.9.6,以避免1.3.0的错误,我们的1.0.7-2.5.2015年5月5日
,我们的最新的
/>
,我们/>
,我们/>








错误修复:"重复的列数"现在得到了尊重

0.0.6-21.05.2015
——在pyexcel-*扩展中可以看到get_data和save_data。记住它们一次并在所有扩展中使用它们。

<0.0.5-22.02.2015年2月0.0.0.0.5-22.02.2015年2月
,我们已经加入了
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^是的从多页书中仅加载一页。使用新的BSD许可证

0.0.4-14.12.2014
-----------------------------------


更新了
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^IO接口更新为PyExcel IO引入的关键字。
。初始版本

0.0.3-2014年12月8日
——IO接口更新为PyExcel IO引入的关键字。
。初始释放





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

推荐PyPI第三方库


热门话题
Android:如何写入特定行,Java   Java中从欧元货币字符串中删除空格的数字   Java非均匀多维数组   解密AES时出现java空指针异常   java ConcurrentModificationException尝试移除列表上的所有内容时(非迭代)   Java数学库计算日志   java ISO8601,使用Jackson以毫秒表示json   避免副作用的java最佳实践   java获取JMeterException:调用bsh方法时出错:未定义参数:saa。使用beanshell取样器时   使用javascript将会话从一个jsp页面传输到另一个jsp页面   java在列表中组合相邻元素   java多行JTextPane   java Hibernate映射文件连接两个表而不定义关系?   如何使用Ajax、Java和Spring框架将文件从网页上传到Google云存储   多线程多线程Java中producerconsumer代码的多线程没有提供正确的输出?