数据分析器

作者:鹿Sir办公效率v3

多格式数据分析工具,支持 Excel、CSV、Word、PDF、TXT、Markdown 文件的数据提取、汇总统计、对比分析和报告生成。当用户需要数据分析、文件分析、数据汇总、统计报告、Excel分析时触发。触发词:数据分析、Excel分析、数据汇总、统计报告。

下载量
271
点赞
68
价格
免费

技能文档

---
name: data-analyzer
title: 数据分析器
category: 办公效率
description: 多格式数据分析工具,支持 Excel、CSV、Word、PDF、TXT、Markdown 文件的数据提取、汇总统计、对比分析和报告生成。当用户需要数据分析、文件分析、数据汇总、统计报告、Excel分析时触发。触发词:数据分析、Excel分析、数据汇总、统计报告。
---

# 数据分析器

对 Excel、CSV、Word、PDF 等文件中的数据进行分析和汇总。

## 功能特性

- 📊 **多格式输入**:支持 Excel、CSV、Word、PDF、TXT、Markdown
- 📁 **文件夹扫描**:批量分析整个文件夹中的文件
- 📈 **统计分析**:求和、平均值、趋势分析
- 🔄 **数据合并**:多个文件数据合并处理
- 📉 **可视化**:生成数据图表
- 📋 **多格式输出**:支持 Markdown、Excel、Word、PDF 格式输出
- 🌍 **多语言**:支持中英文输出

## 触发条件

- "分析这个文件夹"
- "对比这些Excel"
- "汇总数据"
- "data-analyzer"

---

## 核心代码

```python
import os
import pandas as pd
from pathlib import Path
from docx import Document
import fitz  # PyMuPDF

class DataAnalyzer:
    def __init__(self, folder_path):
        self.folder = Path(folder_path)
        self.files = self._scan_files()
    
    def _scan_files(self):
        """Scan folder for supported files"""
        files = {
            'excel': [], 'csv': [], 'word': [],
            'pdf': [], 'txt': [], 'markdown': []
        }
        
        for f in self.folder.rglob('*'):
            ext = f.suffix.lower()
            if ext in ['.xlsx', '.xls']:
                files['excel'].append(str(f))
            elif ext == '.csv':
                files['csv'].append(str(f))
            elif ext == '.docx':
                files['word'].append(str(f))
            elif ext == '.pdf':
                files['pdf'].append(str(f))
            elif ext == '.txt':
                files['txt'].append(str(f))
            elif ext in ['.md', '.markdown']:
                files['markdown'].append(str(f))
        
        return files
    
    def analyze_excel(self, file_path):
        """Analyze Excel file"""
        df = pd.read_excel(file_path)
        return {'rows': len(df), 'columns': len(df.columns), 'data': df}
    
    def analyze_csv(self, file_path):
        """Analyze CSV file"""
        df = pd.read_csv(file_path)
        return {'rows': len(df), 'columns': len(df.columns), 'data': df}
    
    def analyze_word(self, file_path):
        """Analyze Word file"""
        doc = Document(file_path)
        text = '\n'.join([p.text for p in doc.paragraphs if p.text.strip()])
        return {'paragraphs': len(doc.paragraphs), 'text': text}
    
    def analyze_pdf(self, file_path):
        """Analyze PDF file"""
        doc = fitz.open(file_path)
        text = ''
        for page in doc:
            text += page.get_text()
        result = {'pages': len(doc), 'text': text}
        doc.close()
        return result
    
    def analyze_txt(self, file_path):
        """Analyze TXT file"""
        with open(file_path, 'r', encoding='utf-8') as f:
            text = f.read()
        return {'lines': len(text.split('\n')), 'text': text}
    
    def analyze_markdown(self, file_path):
        """Analyze Markdown file"""
        with open(file_path, 'r', encoding='utf-8') as f:
            text = f.read()
        return {'lines': len(text.split('\n')), 'text': text}
    
    def analyze_file(self, file_path):
        """Auto-detect and analyze any supported file"""
        ext = Path(file_path).suffix.lower()
        
        if ext in ['.xlsx', '.xls']:
            return self.analyze_excel(file_path)
        elif ext == '.csv':
            return self.analyze_csv(file_path)
        elif ext == '.docx':
            return self.analyze_word(file_path)
        elif ext == '.pdf':
            return self.analyze_pdf(file_path)
        elif ext == '.txt':
            return self.analyze_txt(file_path)
        elif ext in ['.md', '.markdown']:
            return self.analyze_markdown(file_path)
        else:
            return {'error': f'Unsupported format: {ext}'}
    
    def generate_summary(self):
        """Generate analysis summary"""
        summary = {'total_files': 0, 'file_details': []}
        
        for ftype, flist in self.files.items():
            for fpath in flist:
                try:
                    analysis = self.analyze_file(fpath)
                    summary['file_details'].append({
                        'name': os.path.basename(fpath),
                        'type': ftype,
                        'analysis': analysis
                    })
                    summary['total_files'] += 1
                except Exception as e:
                    summary['file_details'].append({
                        'name': os.path.basename(fpath),
                        'type': ftype,
                        'error': str(e)
                    })
        
        return summary
```

---

## 技能工作流

### 步骤1:扫描目标文件夹

识别用户指定的文件夹路径,递归扫描其中所有支持格式的文件(Excel、CSV、Word、PDF、TXT、Markdown),建立文件清单。

### 步骤2:解析与分析数据

根据文件类型自动选择对应的解析方法,提取数据内容。支持自动识别文件格式并调用相应的分析模块。

### 步骤3:生成汇总报告

对分析结果进行汇总统计,根据用户需求生成 Markdown、Excel、Word 或 PDF 格式的分析报告。

### 步骤4:数据对比(可选)

当用户提供多个同类文件时,自动进行数据对比分析,识别差异与趋势。

---

## 使用示例

```
用户:"分析这个文件夹里所有的Excel文件"
助手:使用 DataAnalyzer 扫描并分析

用户:"对比这些CSV文件"
助手:读取并对比数据

用户:"生成一份数据报告"
助手:生成分析报告
```

---

## 注意事项

- 支持 .xlsx、.csv、.docx、.pdf、.txt、.md 格式
- 所有数据均在本地处理,不会上传至外部
- 跨平台兼容

使用说明

# 数据分析器

多格式数据分析工具,支持 Excel、CSV、Word、PDF、TXT、Markdown 文件的数据提取、汇总统计、对比分析和报告生成。

## 功能特性

- 多格式输入:Excel、CSV、Word、PDF、TXT、Markdown
- 文件夹批量扫描与分析
- 数据统计:求和、平均值、趋势分析
- 多文件数据合并与对比
- 多格式输出:Markdown、Excel、Word、PDF

## 触发条件

- 分析这个文件夹
- 对比这些Excel
- 汇总数据
- 数据分析、Excel分析、数据汇总、统计报告

## 工作流程

1. 扫描目标文件夹,识别所有支持格式的文件
2. 根据文件类型自动选择解析方法,提取数据内容
3. 汇总统计并生成分析报告
4. 可选:多文件数据对比分析

## 依赖

- Python 3
- pandas、openpyxl、python-docx、pymupdf、matplotlib

## 注意事项

- 所有数据在本地处理,不会上传至外部
- 跨平台兼容

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手