Python - 每次格式更改时读取excel数据

时间:2017-03-30 03:02:37

标签: python excel

enter image description here

我得到了某人的擅长,我需要每个月阅读数据。格式每次都不稳定,并且说“不稳定”我的意思是:

  1. 数据开始变化的地方:例如A部分可以从第4行第D列开始,但下次可以从第2行第E列开始。
  2. 每个部分下都有标签。标签的数量也可能会发生变化。但每次我只需要tag_2和tag_3中的数据(这两个将始终显示)
  3. 我需要的唯一数据来自tag_2,tag_3,每个月(month1 - month8)。我想找到一种使用Python的方法首先找到部分名称,然后在该部分下找到tag_2,tag_3,然后获取month1到month8的数据(月数也可能会改变)。

    请注意,我不想通过在excel中指定位置来找到我需要的数据,因为每次都会更改位置。我该怎么做?

    最终产品应该是一个pandas数据框,其中包含tag_2,tag_3的每月数据,其中一列显示数据来自哪个部分。

    感谢。

2 个答案:

答案 0 :(得分:0)

我认为您可以直接将其读作逗号分隔的文本文件。根据您的需要,您可以查看每行的tag2 ant tag3。

with open(filename, "r") as fs:
    for line in fs:
        cell_list = line.split(",")
        # This point you will have all elements on the line as a list
        # you can check for the size and implement your logic

答案 1 :(得分:0)

假设(可能是手动粘贴的)信息块不太可能在excel表的最右下角结束,您可以简单地遍历行和列(为每个行设置最大值以防止长搜索时间)直到你找到熟悉的价值(例如" A部分和#34;)并从那里开始。

除非我误解了你,否则这些格式的其余部分应该在几个月之间保持一致,这样你就可以简单地假设" month_1"始终是一个单元格,两个位于该初始点的右侧。

我没有亲自使用python中的excel表,所以我无法说明python中是否可以使用以下内容,但它肯定适用于ExcelVBA:

您也可以使用Range.find()方法来查找值" A部分"并继续上述相同的过程,也许将任何结果写入txt文件并在必要时从那里调用你的python脚本。

我希望这会有所帮助。