Excel缩进层级处理

需求:

将Excel文件内容处理为带层级的格式

步骤:

1、提取单元格文本缩进个数

Sub 宏()
Dim a As Integer
For a = 2 To 6273
ActiveSheet.Cells(a, 2) = ActiveSheet.Cells(a, 1).IndentLevel
Next a
End Sub

2、将缩进进行统计,进行叠加

将缩进进行统计0-9个等级

当缩进为0时,对临时变量进行初始化赋值

依次按照等级进行循环,下一个等级等于上一个等级的内容拼接

#i 为行号或索引值,x为最后一行或最大索引
for i in range(x):
    tmp_num=data[i:i+1]['缩进'].values
    if tmp_num[0]-2==0:
        y0=data[i:i+1]['适应症'].values[0]
        y=y0
    elif tmp_num[0]-2==1:
        y1=y0+'>'+data[i:i+1]['适应症'].values[0]
        y=y1
    elif tmp_num[0]-2==2:
        y2=y1+'>'+data[i:i+1]['适应症'].values[0]
        y=y2
    ……
        
    print(y)

3、层级处理代码(Python)

import pandas as pd

#读取Excel数据
data=pd.read_excel('./data/适应症.xlsx',sheet_name='适应症层级',header=0)

data['层级']=''

#层级处理
for i in range(len(data)):
    tmp_num=data[i:i+1]['缩进'].values
    if tmp_num[0]-2==0:
        y0=data[i:i+1]['适应症'].values[0]
        y=y0
    elif tmp_num[0]-2==1:
        y1=y0+'>'+data[i:i+1]['适应症'].values[0]
        y=y1
    elif tmp_num[0]-2==2:
        y2=y1+'>'+data[i:i+1]['适应症'].values[0]
        y=y2
    elif tmp_num[0]-2==3:
        y3=y2+'>'+data[i:i+1]['适应症'].values[0]
        y=y3
    elif tmp_num[0]-2==4:
        y4=y3+'>'+data[i:i+1]['适应症'].values[0]
        y=y4
    elif tmp_num[0]-2==5:
        y5=y4+'>'+data[i:i+1]['适应症'].values[0]
        y=y5
    elif tmp_num[0]-2==6:
        y6=y5+'>'+data[i:i+1]['适应症'].values[0]
        y=y6
    elif tmp_num[0]-2==7:
        y7=y6+'>'+data[i:i+1]['适应症'].values[0]
        y=y7
    elif tmp_num[0]-2==8:
        y8=y7+'>'+data[i:i+1]['适应症'].values[0]
        y=y8
    elif tmp_num[0]-2==9:
        y9=y8+'>'+data[i:i+1]['适应症'].values[0]
        y=y9
    elif tmp_num[0]-2==10:
        y10=y9+'>'+data[i:i+1]['适应症'].values[0]
        y=y10
        
    print(y)
    data.at[i, '层级']=y

#保存数据
data.to_excel('./data/适应症处理.xlsx')

4、结果预览

5、处理前后对比

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值