Token导航 LogoToken导航TokenDH.com
Excel Tags Parser Mongodb logo
运维云端stdio官方级别未说明来源级核验

Excel Tags Parser Mongodb

MCP Server

一个基于Python的Web应用程序,用于解析大型Excel文件中的标签列,提取结构化信息并支持MongoDB集成和AI分析。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonAI分析云端部署

安装说明

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

作者 / 组织

mudakara

提供方

mudakara

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv venv

详细介绍

Excel标签解析器

一个Python应用程序,具有基于web的UI,通过解析“标签”列并将结构化信息提取到单独的列中来处理大型Excel文件(100000+行)。

特性

  • 用户友好的Web界面 使用Streamlit构建
  • 处理大文件 -优化以高效处理100000多行
  • 块状加工 -使用pandas块进行内存高效处理
  • 多种标签格式 -支持多种标签格式(键值、管道分隔、JSON)
  • 实时进度 -处理过程中的实时进度跟踪
  • 下载结果 -轻松下载已处理的文件
  • MongoDB集成 -将数据推送到MongoDB进行仪表板和分析
  • MCP服务器 -使用AI/LLM查询数据库并创建图表
  • 命令行界面 -用于批处理的CLI选项

提取的信息

应用程序读取“标签”列中的每一行并提取:

  1. 应用程序名称
  2. 环境
  3. 所有者

这些值将作为新列添加到已处理的Excel文件中。

支持的标记格式

1.键值对(推荐)

app:myapp,env:production,owner:john.doe
application:webapp,environment:dev,owner:jane.smith

2.管道分离值

myapp|production|john.doe
webapp|dev|jane.smith

3.JSON格式

{"app":"myapp","env":"production","owner":"john.doe"}

安装

先决条件

  • Python 3.9或更高版本
  • pip包管理器

设置

  1. 克隆或下载此存储库
  1. 创建虚拟环境 (推荐)
   python -m venv venv
  1. 激活虚拟环境

- 在macOS/Linux上:

     source venv/bin/activate

- 在Windows上:

     venv\Scripts\activate
  1. 安装依赖项
   pip install -r requirements.txt

用法

Web界面(推荐)

  1. 启动Streamlit应用程序
   streamlit run src/ui/streamlit_app.py
  1. 打开浏览器 -应用程序将在以下时间自动打开 http://localhost:8501
  1. 上传Excel文件 -点击“浏览文件”并选择您的Excel文件
  1. 查看预览 -检查标签列是否被识别
  1. 点击“流程文件” -等待处理完成
  1. 下载结果 -点击“下载已处理文件”
  1. 推送到MongoDB(可选) -点击“推送到MongoDB”为仪表板存储数据

MongoDB集成

该应用程序包括用于存储处理数据的MongoDB集成:

  1. 安装MongoDB -请参阅 MONGODB_SETUP.md 有关安装说明
  1. 启动MongoDB:
   # macOS
   brew services start mongodb-community@7.0

   # Linux
   sudo systemctl start mongod
  1. 测试连接 -使用侧边栏中的“测试MongoDB连接”按钮
  1. 推送数据 -处理完毕后,点击“推送到MongoDB”按钮
  1. 查看统计信息 -查看数据库统计信息,包括独特的应用程序、环境和所有者

有关详细的MongoDB设置、模式设计和查询指南,请参阅 MONGODB_SETUP.md.

用于AI/LLM集成的MCP服务器

使用AI分析您的数据!MCP(模型上下文协议)服务器允许开源LLM查询MongoDB并创建图表:

  1. 设置MCP服务器:
   cd mcp_server
   pip install -r requirements.txt
   python test_mcp.py  # Verify it works
  1. 连接到LLM (LM工作室、克劳德桌面、Continue.dev等)
  1. 问自然语言问题:

- “显示数据库统计信息” - “按环境创建资源柱状图” - “哪个所有者拥有最多的资源?” - “绘制跨环境应用程序的热图”

mcp_server/QUICKSTART.md 有关详细的设置说明。

mcp_server/PROMPTS.md 例如提示。

命令行界面

对于批处理或自动化:

python src/app.py  

例子:

python src/app.py data/uploads/myfile.xlsx data/processed/myfile_processed.xlsx

项目结构

excel-tags-parser/
├── src/
│   ├── app.py                 # CLI entry point
│   ├── ui/
│   │   └── streamlit_app.py   # Web UI
│   ├── processor/
│   │   ├── excel_reader.py    # Excel reading with chunking
│   │   ├── tag_parser.py      # Tag parsing logic
│   │   └── excel_writer.py    # Excel writing
│   ├── database/
│   │   ├── mongodb_client.py  # MongoDB connection
│   │   └── mongodb_operations.py  # Data insertion & queries
│   └── utils/
│       └── validators.py      # Input validation
├── mcp_server/                # MCP server for LLM integration
│   ├── mongodb_mcp_server.py  # MCP server implementation
│   ├── requirements.txt       # MCP dependencies
│   ├── QUICKSTART.md          # Quick start guide
│   ├── PROMPTS.md             # Example prompts for LLMs
│   └── test_mcp.py            # Test script
├── data/
│   ├── uploads/               # Temporary uploads (auto-cleaned)
│   └── processed/             # Processed files
├── tests/                     # Test files
├── config.py                  # Configuration settings
├── requirements.txt           # Python dependencies
├── README.md                  # This file
└── MONGODB_SETUP.md           # MongoDB setup guide

配置

编辑 config.py 要自定义设置,请执行以下操作:

# Processing settings
CHUNK_SIZE = 10000              # Rows per chunk
MAX_FILE_SIZE_MB = 500          # Maximum upload size

# Column names
TAG_COLUMN = 'Tags'             # Name of the tags column

# Tag parsing
TAG_SEPARATORS = [',', ';', '|']
KEY_VALUE_SEPARATOR = ':'

# MongoDB settings
MONGODB_URI = 'mongodb://localhost:27017/'
MONGODB_DATABASE = 'azure'
MONGODB_COLLECTION = 'resources'

自定义标记解析

如果您的标签格式不同,请修改 parse_tags() 功能在 src/processor/tag_parser.py.

示例:自定义格式

如果你的标签看起来像: myapp-production-john.doe

将此添加到 parse_tags() 功能:

# Strategy: Dash-separated format
elif '-' in tag_string and tag_string.count('-') >= 2:
    parts = tag_string.split('-')
    result['Application Name'] = parts[0].strip()
    result['Environment'] = parts[1].strip()
    result['Owner'] = parts[2].strip()

演出

  • 10万行:约30-60秒
  • 500K行:约2-4分钟
  • 1M行:~5-8分钟

性能取决于:

  • 文件大小和复杂性
  • 标签格式复杂性
  • 系统规范

故障排除

错误:“找不到列'Tags'”

  • 确保Excel文件有一个名为“标签”的列(区分大小写)
  • 或修改 TAG_COLUMNconfig.py 以匹配您的列名

错误:“文件大小超过最大值”

  • 增加 MAX_FILE_SIZE_MBconfig.py

内存问题

  • 减少 CHUNK_SIZEconfig.py (例如,从10000到5000)

处理速度慢

  • 增加 CHUNK_SIZE 更快的处理速度(使用更多内存)
  • 启用并行处理:设置 ENABLE_PARALLEL_PROCESSING = Trueconfig.py

发展

运行测试

pytest tests/

添加新标签格式

  1. 编辑 src/processor/tag_parser.py
  2. 添加新的解析函数(例如。, _parse_custom_format())
  3. 打电话给 parse_tags() 基于检测逻辑
  4. 使用样本数据进行测试

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加测试
  5. 提交拉取请求

需求

  • 熊猫>=2.0.0
  • openpyxl>=3.1.0
  • xlrd>=2.0.0
  • 流式照明>=1.28.0
  • python dotenv>=1.0.0
  • pymongo>=4.6.0(用于MongoDB集成)

许可证

本项目按原样提供供内部使用。

支持

对于问题或疑问:

  1. 检查故障排除部分
  2. 查看控制台中的日志
  3. 检查中的示例文件 data/ 目录

工作流示例

  1. 准备Excel文件

- 确保它有一个“标签”列 - 标签应遵循支持的格式之一

  1. 运行应用程序
   streamlit run src/ui/streamlit_app.py
  1. 上传和处理

- 上传您的文件 - 点击“流程文件” - 等待完成

  1. 评审结果

- 检查统计数据 - 预览解析后的数据 - 下载已处理的文件

  1. 推送到MongoDB(可选)

- 点击“推送到MongoDB”按钮 - 查看数据库统计信息 - 使用存储的数据创建仪表板

  1. 验证输出

- 打开下载的文件 - 检查三个新列:应用程序名称、环境、所有者

高级用法

程序化使用

from src.processor.excel_reader import read_excel_in_chunks
from src.processor.tag_parser import process_dataframe
from src.processor.excel_writer import write_chunks_to_excel

# Process file
processed_chunks = []
for chunk, total in read_excel_in_chunks('input.xlsx'):
    processed_chunk = process_dataframe(chunk)
    processed_chunks.append(processed_chunk)

# Save results
write_chunks_to_excel(processed_chunks, 'output.xlsx')

批量处理多个文件

for file in data/uploads/*.xlsx; do
    python src/app.py "$file" "data/processed/$(basename "$file" .xlsx)_processed.xlsx"
done

备注

  • 已处理的文件保存在 data/processed/ 目录
  • 上传的文件会被临时存储,并在处理后自动清理
  • 输出文件名中的所有时间戳都使用以下格式:YYYYMMDD_HHMMSS
  • 空或格式错误的标记将导致新列中的值为NULL

目录标签

目录标签

PythonAI分析云端部署Excel处理本地部署标签解析大数据处理MongoDB集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP