Token导航 LogoToken导航TokenDH.com
研究检索external-serviceclawhub未标认证来源可访问clear审计提醒

email-excel-transfer电子邮件 Excel 传输

Agent Skill

用于辅助数据整理、表格处理、CSV/Excel 分析、指标计算和图表准备。它适合让 Agent 清洗字段、汇总数据、发现异常、生成统计口径或把分析结果转成可读说明。使用时需要确认数据来源、字段含义和时间范围,避免把样本数据当全量事实;涉及敏感数据、导出文件或批量写回时,应先确认权限和脱敏边界。

总安装

1,409

周安装

57

GitHub Stars

公开资料未说明

下载量

442
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:email-excel-transfer(电子邮件 Excel 传输)
来源仓库:https://github.com/tomasz-pedzierski-infinity/email-excel-transfer
安装命令:
openclaw skills install email-excel-transfer
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install email-excel-transfer

简介

通过 IMAP 提取邮件附件并用 Excel 程序处理,实现邮件数据到表格的转换。

  • 适合需要将邮件中的文件或数据导入电子表格进行分析的用户。
  • 支持 PowerShell 脚本调用,自动完成下载与插入操作。
  • 涉及文件读写和外部程序执行,需谨慎管理权限与安全边界。
  • 使用前请确认数据来源合法性及敏感信息的处理方式。

SKILL.md

name
email-excel-transfer
description
Automatyzuje workflow pobierania danych z email i wstawiania ich do arkuszy kalkulacyjnych. Użyj gdy użytkownik chce przenieść informacje z poczty do Excela. Domyślnie działa na KOPIACH plików — oryginały pozostają nienaruszone.

Email → Excel Transfer

Automatyczny workflow: pobierz dane z załącznika → przetwórz → wypełnij arkusz.

⚠️ Bezpieczeństwo: Domyślnie wszystkie operacje wykonywane są na KOPIACH plików. Oryginalne pliki pozostają nienaruszone.

Wymagania

  • OpenClaw z dostępem do email
  • Microsoft Excel
  • Opcjonalnie: MCP bridge do komunikacji z Windows

Setup / Credentials

1. Hasło aplikacji do email

NIE używaj hasła do konta — stwórz hasło aplikacji (app password).

Jak wygenerować hasło aplikacji:

  • Gmail: https://myaccount.google.com → Bezpieczeństwo → Hasła aplikacji
  • Outlook/Hotmail: https://account.microsoft.com → Zabezpieczenia → Hasła aplikacji
  • WP Poczta: https://poczta.wp.pl → Ustawienia → Hasła aplikacji

2. Ograniczenie dostępu

Hasło aplikacji daje dostęp TYLKO do odczytu poczty — nie może zmienić hasła ani wyłączyć 2FA.

Whitelista nadawców (opcjonalnie): Dodaj listę dozwolonych adresów email — skill zignoruje wiadomości od innych nadawców:

DOZWOLENI_NADAWCY = ['kontakt@firma.pl', 'biuro@firma.pl']

1. Pobierz wiadomość email

import imaplib, ssl, email, re

# === KONFIGURACJA ===
SERWER = 'imap.example.com'
PORT = 993
EMAIL = 'twoj@email.pl'
HASLO = 'xxxx xxxx xxxx xxxx'  # Hasło aplikacji, NIE zwykłe hasło

# Whitelista nadawców - zostaw puste [] żeby akceptować wszystkich
DOZWOLENI_NADAWCY = []

# Sanityzacja nazwy pliku - usuń wszystko poza bezpiecznymi znakami
def sanityzuj_nazwe(nazwa):
    if not nazwa:
        return None
    # Usuń ścieżki i niebezpieczne znaki
    nazwa = re.sub(r'[/\\]', '', nazwa)  # usuń slashe
    nazwa = re.sub(r'[^\w\s\-.]', '', nazwa)  # tylko bezpieczne znaki
    nazwa = nazwa[:200]  # max 200 znaków
    return nazwa.strip()

# === POBIERANIE WIADOMOŚCI ===
mail = imaplib.IMAP4_SSL(SERWER, PORT, ssl_context=ssl.create_default_context())
mail.login(EMAIL, HASLO)
mail.select('INBOX')

# Szukaj wiadomości (dowolny temat)
_, wiadomosci = mail.search(None, 'ALL')
id_wiadomosci = wiadomosci[0].split()
id_ostatniej = id_wiadomosci[-1]

_, dane = mail.fetch(id_ostatniej, '(RFC822)')
wiadomosc = email.message_from_bytes(dane[0][1])

# Sprawdź nadawcę
nadawca = wiadomosc.get('From', '')
if DOZWOLENI_NADAWCY and not any(n in nadawca for n in DOZWOLENI_NADAWCY):
    print(f"[BLOKADA] Nadawca {nadawca} nie jest na whitelisty")
    mail.logout()
    exit()

# Wyciągnij temat
temat = wiadomosc.get('Subject', '(bez tematu)')
print(f"Pobrano: {temat} od {nadawca}")

2. Wyciągnij załącznik

# Zapisz TYLKO pierwszy pasujący plik
for czesc in wiadomosc.walk():
    if czesc.get_content_disposition() == 'attachment':
        nazwa = czesc.get_filename()
        nazwa = sanityzuj_nazwe(nazwa)  # sanityzacja!
        
        if nazwa and '.xlsx' in nazwa.lower():
            tresc = czesc.get_payload(decode=True)
            if tresc:
                # Zapisz do /tmp z prefixem "copy_"
                sciezka_kopia = f'/tmp/copy_{nazwa}'
                with open(sciezka_kopia, 'wb') as f:
                    f.write(tresc)
                print(f"Zapisano kopię: {sciezka_kopia}")
                break

3. Odczytaj komórki z xlsx

import zipfile, re

def czytaj_xlsx(sciezka):
    with zipfile.ZipFile(sciezka) as z:
        arkusz = z.read('xl/worksheets/sheet1.xml').decode()
        teksty = z.read('xl/sharedStrings.xml').decode()
    
    wartosci = re.findall(r'<t[^>]*>([^<]+)</t>', teksty)
    komorki = re.findall(r'<c r="([A-Z]+\d+)"([^>]*)>(.*?)</c>', arkusz, re.DOTALL)
    
    dane = {}
    for ref, attr, cont in komorki:
        v = re.search(r'<v>([^<]+)</v>', cont)
        if v:
            val = v.group(1)
            if 't="s"' in attr:
                val = wartosci[int(val)]
            dane[ref] = val
    return dane

4. DRY-RUN / PREVIEW — pokaż zmiany przed zapisem

def preview_zmian(sciezka, zmiany):
    """
    Wyświetla planowane zmiany do akceptacji.
    Zmiany to słownik: {(wiersz, kolumna): nowa_wartosc}
    """
    print("\
📋 PLANOWANE ZMIANY:")
    print("-" * 40)
    for komorka, wartosc in zmiany.items():
        print(f"  {komorka} → {wartosc}")
    print("-" * 40)
    print(f"Plik: {sciezka}")
    print("\
Potwierdź przed zapisem: tak/nie")

def dry_run(sciezka, zmiany):
    """Pokazuje zmiany ale NIE zapisuje."""
    preview_zmian(sciezka, zmiany)
    return False  # nie zapisuj

# Przykład użycia:
zmiany = {(6, 5): 2450000, (6, 6): 2380000}
akceptacja = dry_run('/tmp/copy_raport.xlsx', zmiany)
if not akceptacja:
    print("Anulowano — brak zapisu")
    exit()

5. Zapisz dane do Excela (NA KOPII)

Na Windows użyj PowerShell:

# Otwórz PLIK KOPIĘ (nie oryginał!)
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$wb = $excel.Workbooks.Open("C:\	emp\copy_raport.xlsx")  # copy_ prefix!
$ws = $wb.ActiveSheet

# Wstaw dane do komórki
$ws.Cells.Item(6, 5).Value2 = 2450000

# Zapisz i zamknij
$wb.Save()
$wb.Close($false)
$excel.Quit()

Write-Host "Zapisano pomyslnie: C:\	emp\copy_raport.xlsx"

Konfiguracja

  1. Hasło aplikacji — wygeneruj w panelu swojego dostawcy email
  2. Whitelista nadawców — dodaj zaufane adresy w kodzie
  3. Tryb dry-run — włączony domyślnie, pokazuje zmiany przed zapisem
  4. MCP bridge — opcjonalny do komunikacji Linux→Windows

Użycie

1. Powiedz "pobierz dane z maila i wstaw do Excela"
2. Agent pobiera wiadomość → wyświetla PLAN ZMIAN (dry-run)
3. Potwierdzasz → agent zapisuje do pliku z prefixem "copy_"
4. Oryginalny plik pozostaje nietknięty

⚠️ Ważne: Wszystkie zmiany zapisywane są do plików z prefixem copy_. Oryginały nigdy nie są modyfikowane.

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

73.82%
按下载量换算326

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

通过

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills