艺赛旗 RPA8.0全新首发免费下载 点击下载
http://www.i-search.com.cn/index.html?from=line1
在进行月末客户清账的流程设计时,其中一个步骤是导出电子表格或者网页并从中筛选数据。
页面如下:
另外,如果是网页格式的文件,用浏览器打开可能是这样的(后缀名为mhtml):
也可能是这样的(后缀名为htm):
对于红框中的每一个单元格,我们需要判断其中的值,如果红框(上一个黄色行与下一个黄色行中间的那些行)中既有A又有空单元格(比如第一个红框中最后一项是空单元格,前面都是A),那么我们就取箭头指向的科目,如果红框中全是A或者全是空则排除那个科目(比如第二个红框中全是A,就排除箭头所指的科目)
思路
首先读取“凭证编号”这一列中的空值,获取所有黄色行所在的索引。然后依次遍历黄色行中间的每一块白色行,将“特别总帐标志”中的每一个值放入集合中,对于每一块白色行都判断一下集合的长度,如果为2则说明那个科目是我们需要的。
方法一(针对导出的是xlsx格式)
import pandas as pd
def parse_excel(path):
df = pd.read_excel(path)
index = df[df[df.columns[3]].isnull()].index[:-1].tolist()
subjects = []
try:
set_index = set()
for x in range(index[0]):
set_index.add(str(df[df.columns[6]].ix[x]))
if