5

今天我需要从一个 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 的整个帖子都丢了,我写得真好。去他妈的,我花了更多的时间试图分享这个而不是编码它。所以我现在称它为我的部分完成了。除非我决定以后再调整它。

4

7 回答 7

6

GitHub也是发布此内容的好地方。特别是因为这将允许其他人快速分叉他们自己的副本并进行他们需要的任何改进或修改。然后,任何想要它们的人也可以使用这些更改。

于 2009-02-17T14:46:36.657 回答
5

你应该把它贴在这里。这里有很多食谱,您的食谱非常适合。

Stack Overflow 旨在成为一个 wiki,人们可以在其中搜索问题并找到答案。话虽如此,如果您想在此处发布它,您要做的就是打开一个与您的答案相关的问题,然后用您的答案回答您自己的问题。

于 2009-02-17T14:17:01.767 回答
2

如果您的代码足够短,可以复制和粘贴,您可能希望将其发布为Python 配方。该站点是学习 Python 技术的绝佳资源,其最佳内容已编入一本书

如果您的代码可以按原样重复使用,那么您应该将您的 Python 代码发布在Python 包索引(pypi) 中。组织您的源代码,阅读本教程,了解如何setup.py为您的包编写一个。一旦你有你的免费 pypi 帐户并编写了setup.py,运行python setup.py register以声明你的包的名称并将它的元数据发布到索引中。setup.py还可以将包的源代码或二进制文件上传到pypi ,例如python setup.py sdist upload构建和上传源代码分发

一旦您的包成为 Python 包索引的一部分,其他 Python 程序员就可以使用包括easy_install your_package.

于 2009-02-17T14:48:14.080 回答
1

错误,具有更具描述性的标题,我相信很多人都会在这里找到它。(但我不知道不是问题标签)。

因此,您可以获得一个免费的博客,只需放入您想要分享的内容,这样您就可以在需要时获得稳定的在线参考。

于 2009-02-17T14:18:13.980 回答
1

一般来说,只要你愿意写一篇关于代码的小文章, CodeProject是一个发布代码的好地方。(关于 CodeProject 的好处之一是它们确实需要一些关于代码的冗长。)该站点获得了大量的流量,因此您在此处发布的任何内容都会被看到。

于 2009-02-17T17:00:06.587 回答
0

在我看来,Python 包索引是适合你的地方

于 2009-02-17T14:28:50.383 回答
0

我可以谦虚地推荐我的网站吗?http://utilitymill.com。它不仅可以让您发布您的 Python 代码,还可以将其变成可运行的 Web 实用程序。

用户可以协作编写代码和撰写文章,它甚至免费为您提供该实用程序的自动 RESTful API。

于 2009-02-18T18:28:00.267 回答