【发布时间】:2010-10-08 02:29:00
【问题描述】:
今天我需要从一个 xlsx 文件(Office open XML 电子表格)中解析出一些数据。我本可以在 openoffice 中打开文件并导出到 csv。不过我以后需要从这个电子表格中重新导入数据,我想消除手动操作。
我在网上搜索了 xlsx 解析器,我发现的只是一个 stackoverflow 问题,问同样的问题:Parsing and generating Microsoft Office 2007 files (.docx, .xlsx, .pptx)
所以我推出了自己的。
用于解析和访问电子表格的 134 行代码,以及 54 行单元测试代码。这当然只在我需要的 1 个文件上进行了测试,除了它在单元测试中的使用方式之外,现在还没有文档。它使用 zipfile、minidom、re 和 unittest,因此非常便携且独立于平台。
由于我不写博客,而且我也不想把它变成 OfficeOpen XML 的 python 库,所以我想知道我应该在哪里发布这段代码。我已经解决了一个我相信其他人将来会遇到的问题。因此,我想将我的代码发布在公共领域的某个地方,以便任何人复制并粘贴到他们的应用程序中并进行调整以解决他们的问题。
实现很简单,这里是功能的快速概述:
workbook = Workbook(filename) # open a file
for sheet in workbook: pass # iterate over the worksheets
workbook["sheetname"] # access a sheet by name, also possible to do by index from 0
sheet["A1"] # Access cell
sheet["A"] # Access column
sheet["1"] # Access row
cell.value # Cell value - only tested with ints and strings.
感谢所有回复。我打算将它托管在 activestate 上,但是在向我发送激活邮件时页面一直崩溃。所以我无法激活我的代码来发布它。
我的第二个选择是 codeproject,我写了一篇关于该文件的好文章。遗憾的是,当我尝试提交我的帖子时,该页面崩溃了。
所以我把它放在 github 上供任何人查看和分支: http://github.com/staale/python-xlsx/tree/master
我不想为 python 项目托管做所有的工作,所以就结束了。
接受 git 答案,因为那是唯一对我有用的东西。还有 git Rocks。
编辑:哎呀,我在 codeproject 的整个帖子都丢了,我写得真好。去他妈的,我花了更多的时间来尝试分享这个,而不是编码它。所以我现在称它为我的部分完成了。除非我决定稍后再调整它。
【问题讨论】:
-
请使用“excel-2007”标签而不是“xlsx”。标记问题时请注意建议提示:名称后数字小于 10 的任何标记都可能是错误的。
标签: python excel-2007