【问题标题】:Is it possible to push data from Excel sheet using Python into a database?是否可以使用 Python 将 Excel 工作表中的数据推送到数据库中?
【发布时间】:2013-05-12 03:25:04
【问题描述】:

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

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

你们有什么想法吗?

根据@Marcin cmets,这是我正在寻找的更明确的要求

为什么需要 python? -> 是的,我正在使用 Python 和 Beautiful Soup 模块从网页中获取数据。

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
>>>

【问题讨论】:

  • 是吗?你有没有遇到过:python-excel.org(看xlwt模块)
  • @PythonLikeYOU 请在您的问题中填写所要求的信息。
  • 如果您的最终要求是放置 RDMS/Access 则错误,为什么要临时使用 Excel?
  • 给出任何合理的建议仍然太模糊 - 但这听起来是一个非常糟糕的主意 - 甚至只是存储到 sqlite3 数据库然后通过某种管道批量上传......但抱歉,我会在这里为这个问题鞠躬
  • @PythonLikeYOU:支持 Jon Clements 的最新评论:使用 Excel 电子表格作为“大量”数据的临时容器根本不是一个好主意。请改用 sqlite3 数据库。无需额外下载 - 请参阅 docs.python.org/2/library/sqlite3.html

标签: python xlrd xlwt xlutils


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我没有下载可安装的文件,就像 xlread 其他 python 包一样。所以请在这里指导我!
    • 你能帮我说说从哪里下载python2.7的包。因为我没有从您提供的 lin 中找到任何可下载的软件包。
    【解决方案3】:

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

    Thang 提到了 pywin32,它也适用于 Office 2007 及更高版本和更早的版本。

    【讨论】:

      【解决方案4】:

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

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

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

      【讨论】:

      • 我刚刚更新了我的描述,请查看。如果你想要更多,我会分享给你!但请不要投反对票。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 2013-12-27
      相关资源
      最近更新 更多