# Excel_TO_Json **Repository Path**: liaoxp27/excel_to_json ## Basic Information - **Project Name**: Excel_TO_Json - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-29 - **Last Updated**: 2025-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Excel 转 JSON 转换器 一个基于Flask的Web应用,用于将Excel文件转换为JSON格式数据,支持多种Excel格式和自定义工作表选择。 ## 功能特点 - 支持多种Excel格式:.xls, .xlsx, .xlsm, .xltx, .xltm - 提供直观的Web界面,无需命令行操作 - 支持通过名称或索引选择工作表 - 自动处理中文等非ASCII字符 - 实时显示转换结果,支持格式化输出 - 同时保留命令行转换功能 ## 设计思路 ### 整体架构 本项目采用前后端分离的简单架构: - **前端**:HTML/CSS构建的单页面应用,提供文件上传和参数设置界面 - **后端**:Flask框架处理文件上传、Excel解析和JSON转换 - **核心逻辑**:独立的Excel转JSON转换模块,可同时被Web界面和命令行调用 ### 数据流程 1. 用户上传Excel文件并设置工作表参数 2. 后端验证文件格式并生成唯一文件名 3. 调用转换模块解析Excel内容 4. 将转换结果以JSON格式返回给前端显示 5. 同时保存JSON文件到服务器本地 ### 关键技术点 - 文件安全处理:使用UUID生成唯一文件名,避免中文和特殊字符问题 - 错误处理机制:完善的异常捕获和用户友好提示 - 兼容性设计:支持多种Excel格式和工作表选择方式 - 可扩展性:核心转换逻辑与界面分离,便于功能扩展 ## 环境要求 - Python 3.7+ - 依赖包:flask, pandas, openpyxl, xlrd ## 安装步骤 1. 克隆或下载本项目到本地 2. 安装依赖包: ```bash pip install -r requirements.txt ``` ## 使用方法 ### 一键启动(推荐) 以下是针对不同操作系统的详细启动步骤,即使您没有编程经验,只需按照步骤操作即可成功运行。 #### Windows系统 **准备工作:** 1. 确保已安装Python 3.8或更高版本 - 若未安装:访问 ,下载并安装Python - 安装时务必勾选 **"Add Python to PATH"** 选项(非常重要!) 2. 确保电脑已连接互联网(首次启动需要下载必要组件) **启动步骤:** 1. 找到下载或解压后的项目文件夹 2. 双击文件夹中的 `` 文件 3. 首次启动会出现命令窗口,自动下载所需组件(请耐心等待,不要关闭窗口) 4. 当看到 **"Running on http://127.0.0.1:5000"** 字样时,表示启动成功 5. 系统会自动打开浏览器窗口,显示工具界面 **常见问题:** - 双击后窗口一闪而过:通常是Python未安装或未勾选"Add Python to PATH",请重新安装Python - 提示"pip不是内部或外部命令":Python安装时未添加到系统路径,请重新安装并勾选相应选项 #### Linux系统 **准备工作:** 1. 确保电脑已连接互联网 2. 打开终端(常用方法:按下 `Ctrl + Alt + T` 组合键) **启动步骤:** 1. **安装Python环境**(仅首次使用需要): 在终端中复制粘贴以下命令并按Enter键: ```bash sudo apt update && sudo apt install -y python3 python3-pip ``` *提示:输入密码时屏幕不会显示字符,这是正常现象,输入完成后按Enter即可* 2. **进入项目文件夹**: 在终端中输入以下命令(请将`/path/to/excel_to_json_converter`替换为您实际的文件夹路径): ```bash cd /path/to/excel_to_json_converter ``` *例如:如果文件在桌面上,命令可能是:`cd ~/Desktop/excel_to_json_converter`* 3. **赋予脚本执行权限**: 在终端中复制粘贴以下命令并按Enter键: ```bash chmod +x start.sh ``` 4. **运行启动脚本**: 在终端中复制粘贴以下命令并按Enter键: ```bash ./start.sh ``` 5. **访问工具**: 启动成功后,打开浏览器,在地址栏输入: 并按Enter键 **常见问题:** - 提示"Permission denied":请确保已执行步骤3赋予权限 - 提示"Command not found":请检查Python是否安装成功 - 启动后无法访问网页:请检查终端中是否显示"Running on http://127.0.0.1:5000" ### 手动启动 ### Web界面使用(推荐) 1. 启动应用: ```bash python app.py ``` 2. 打开浏览器访问:http://127.0.0.1:5000 3. 点击"选择文件"按钮上传Excel文件 4. (可选)输入工作表名称或索引(默认为0) 5. 点击"上传并转换"按钮 6. 查看转换结果 ### 命令行使用 ```bash python excel_to_json.py <输入Excel文件> <输出JSON文件> [--sheet 工作表名称或索引] ``` #### 参数说明 - `input_file`: 输入Excel文件的路径(必填) - `output_file`: 输出JSON文件的路径(必填) - `--sheet`: 可选参数,指定工作表名称或索引,默认为0 #### 命令行示例 ```bash # 转换第一个工作表 python excel_to_json.py data.xlsx output.json # 转换指定工作表 python excel_to_json.py data.xlsx output.json --sheet "用户数据" ``` ## 项目结构 ``` excel_to_json_converter/ ├── app.py # Flask应用入口 ├── excel_to_json.py # 核心转换逻辑 ├── requirements.txt # 项目依赖 ├── README.md # 项目说明文档 ├── templates/ │ └── index.html # Web界面模板 ├── start.bat # Windows一键启动脚本 ├── start.sh # Linux一键启动脚本 └── uploads/ # 文件上传和转换结果存储目录 ``` ## API文档 ### 接口概览 本项目提供以下API接口,支持外部系统集成Excel转JSON功能: #### 文件上传与转换接口 - **URL**: `/upload` - **方法**: `POST` - **描述**: 上传Excel文件并转换为JSON格式 - **请求参数**: - `file`: Excel文件 (multipart/form-data格式) - `sheet` (可选): 工作表名称或索引,默认为0 - **成功响应**: ```json { "success": true, "message": "文件上传并转换成功", "data": { "file_name": "原始文件名.xlsx", "json_path": "/uploads/xxx.json", "data": [转换后的JSON数据] } } ``` - **错误响应**: ```json { "success": false, "message": "错误描述信息", "error_code": "ERROR_CODE" } ``` - **状态码**: - 200: 成功 - 400: 请求参数错误 - 413: 文件过大 - 500: 服务器内部错误 #### 获取转换结果接口 - **URL**: `/results/` - **方法**: `GET` - **描述**: 获取指定文件ID的转换结果 - **路径参数**: - `file_id`: 文件唯一标识符 - **成功响应**: ```json { "success": true, "data": [转换后的JSON数据] } ``` ## 开发指南 ### 开发环境搭建 1. **克隆代码库**: ```bash git clone cd excel_to_json_converter ``` 2. **创建虚拟环境**: ```bash # Windows python -m venv venv venv\Scripts\activate # Linux/Mac python3 -m venv venv source venv/bin/activate ``` 3. **安装开发依赖**: ```bash pip install -r requirements.txt pip install -r requirements-dev.txt # 包含测试和代码质量工具 ``` ### 项目架构详解 本项目采用分层架构设计,主要包含以下模块: 1. **应用层** (`app.py`): Flask应用入口,路由注册 2. **路由层** (`routes/`): API接口定义 3. **服务层** (`services/`): 业务逻辑实现 - `file_service.py`: 文件上传和管理 - `converter_service.py`: Excel转JSON核心逻辑 4. **工具层** (`utils/`): 通用工具函数 5. **数据层** (`models/`): 数据模型定义 ### 代码规范 - 遵循PEP 8编码规范 - 使用类型注解提高代码可读性 - 关键函数需添加文档字符串 - 复杂逻辑需编写单元测试 ### 测试指南 1. **运行单元测试**: ```bash pytest tests/ -v ``` 2. **测试覆盖率**: ```bash pytest --cov=app tests/ ``` ### 贡献流程 1. Fork本仓库 2. 创建特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 打开Pull Request ## 注意事项 - 文件大小限制:最大支持16MB的Excel文件 - 工作表选择:留空则默认使用第一个工作表 - 转换结果:会同时显示在页面和保存到uploads目录 - 支持的格式:.xls, .xlsx, .xlsm, .xltx, .xltm ## 故障排除 - **服务器启动失败**:检查端口是否被占用或依赖是否安装完整 - **文件上传失败**:检查文件格式和大小是否符合要求 - **转换失败**:检查Excel文件格式是否规范,避免复杂格式如合并单元格 - **中文显示问题**:确保使用最新版本的依赖包