今天我需要从一个 xlsx 文件(Office open XML 电子表格)中解析出一些数据。我本可以在 openoffice 中打开文件并导出到 csv。但是我稍后需要从这个电子表格中重新导入数据,并且我想消除手动操作。
我在网上搜索 xlsx 解析器,我发现的只是一个 stackoverflow 问题,问同样的事情:Parsing and generate 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 岩石。
编辑:Gah,我在 codeproject 的整个帖子都丢了,我写得真好。去他妈的,我花了更多的时间试图分享这个而不是编码它。所以我现在称它为我的部分完成了。除非我决定以后再调整它。