需求:
将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、处理前后对比