是否可以使用Python将数据从Excel工作表推送到数据库中?

时间:2013-01-05 18:48:24

标签: python xlrd xlwt xlutils

我有一个要求,我需要使用Python写入excel单元格,我将从网页收集的数据。

但是没有选择如何做到这一点。

你们这些人的想法是什么?

根据@Marcin,这里的评论是我要求的更明确的要求

为什么要求python? - > 是的我使用带有Beautiful Soup模块的Python来从网页中获取数据。

excel在哪里运行,或者它在运行? - >当脚本从网页完成数据收集时需要 Excel,并且尝试下一页执行相同的任务,我希望将当前数据保存为excel格式。

这与网络有什么关系?你究竟想要达到什么程度? 希望这个答案能够解决你的上述问题。

您可以使用CSV文件吗? 是的,我可以使用它,但我的最终目标是将数据推送回数据库,该数据库可能是Oracle或访问数据库。

建筑

                 ------------------
                |       web        |
                |       page       |
                 ------------------
                          |
                          |
                          |
            Python and BS4(Data Extraction)
                          |
                          |
                          |
                 ------------------                               
                |       Excel      |
                |       data       |
                 ------------------
                          |
                          |
                          |
             Python to Push Data(Oracle/Access)
                          |
                          |
                          |
                 ------------------
                |       Any        |
                |       DB         |
                 ------------------

编辑

根据@Thang

我已经尝试但得到了错误:

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Happy>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import win32com.client
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named win32com.client
>>>

5 个答案:

答案 0 :(得分:3)

实际上,你有几个选择,具体取决于你想要做什么。

xlwt - 我认为这对于从Python处理Excel文件非常有用。我已将您链接到文档。 DataNitro - 用于Excel中的Python脚本。它有点慢,但我已经用了很多。您可以(通常使用VBA)让Excel发出Web请求并拉入表格。在我知道如何编程之前,这就是我完成所有网络抓取工作的方式。

答案 1 :(得分:1)

我会建议PyWin32。本文可以为您提供一些基本知识:http://www.blog.pythonlibrary.org/2010/07/16/python-and-microsoft-office-using-pywin32/

答案 2 :(得分:1)

对于Office 2007及更高版本的API是.Net,因此您可以使用Python for .NetIronPython

Thang提到了pywin32,它也适用于Office 2007以及旧版本和旧版本。

答案 3 :(得分:1)

如果您正在使用Office 2007 excel(又名xlsx文件),请尝试OpenPyXL

答案 4 :(得分:1)

如果您只需要能够在Excel中使用数据,请使用csv模块以csv格式保存。

如果您需要直接生成Excel格式文件(我认为您没有理由,因为您没有说您正在接收Excel文件),您可以使用其他答案中提到的第三方模块之一

更新:使用CSV不会阻止您将数据放入数据库中;同样,如果您想将数据放入数据库,Excel将不会特别为您提供帮助。更好的方法是简单地将数据保存在内存中,并在完成后将其写入数据库。如果您需要中间存储,请使用其他数据库。