Skill Steps
SkillFiles & storageLets your agent read multi-sheet Excel files, clean Chinese text fields, and output a standardized Excel file.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Skill Steps skill
About this capability
Reads multi-sheet Excel files, dynamically identifies target columns for statistics, uses regex to clean text fields and extract Chinese characters, and outputs a standardized Excel file.
What this skill tells your AI
The instructions your AI receives, as published by opensensenova/sensenova-skills in skills/sn-da-excel-workflow/capability/excel-reading/structured-header-reading/SKILL.md and read by ahel’s review.
This sub-skill covers one capability of the Excel workflow. For reading/counting/Parquet optimization, see the parent workflow SKILL.md.
Step1 文本字段清洗,使用正则表达式提取纯中文字符(过滤数字、特殊符号等)。
import re
def extract_chinese(text):
if pd.isna(text):
return text
# 仅保留 Unicode 中文字符范围
chinese_chars = re.findall(r'[一-龥]', str(text))
cleaned = ''.join(chinese_chars)
return cleaned if cleaned else ''
clean_col = '目标清洗列' # 占位示例,如'收货人'
if clean_col in df.columns:
df[clean_col] = df[clean_col].apply(extract_chinese)
Step2 动态模糊匹配列名,并统计该列中特定值的数量。
# 动态查找包含特定关键字的列
keyword = 'type'
target_val = 'varchar'
target_col = next((col for col in df.columns if keyword in str(col).lower()), None)
total_target_count = 0
details = []
if target_col is not None:
# 忽略大小写和首尾空格进行匹配
mask = df[target_col].astype(str).str.lower().str.strip() == target_val
count = mask.sum()
total_target_count += count
if count > 0:
details.append({
'sheet': target_sheet,
'target_count': count,
'total_rows': len(df)
})
print(f"{'='*50}")
print(f"匹配列 '{target_col}' 中值为 '{target_val}' 的总数: {total_target_count}")
print(f"{'='*50}")
for detail in details:
print(f" {detail['sheet']}: {detail['target_count']} 个匹配项 (共 {detail['total_rows']} 行)")
Step3 将清洗和处理后的数据保存为 Excel,并输出文件大小与下载链接。
output_path = "/mnt/data/cleaned_data_output.xlsx"
df.to_excel(output_path, index=False)
file_size = os.path.getsize(output_path)
print(f"清洗后的数据已保存至: {output_path}")
print(f"文件大小: {file_size} 字节")
# 生成标准下载链接格式
print(f"下载链接: sandbox:{output_path}")
Signals
- GitHub stars
- 6k
- Forks
- 390
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
excel-large-file-processing-and-cleaning- Source
- github.com/opensensenova/sensenova-skills