# ot **Repository Path**: opmonitor/ot ## Basic Information - **Project Name**: ot - **Description**: go读取excel发送到syslog - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-26 - **Last Updated**: 2025-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OT - Excel 数据处理工具 OT 是一个命令行工具,用于批量处理 Excel 文件并将数据通过 TCP/UDP 协议发送到指定服务器。 ## 功能特性 - 📁 批量处理目录下的 Excel (.xlsx) 和 CSV (.csv) 文件 - 📊 支持自定义起始行(默认从第 8 行开始作为标题行) - 🌐 支持 TCP 和 UDP 协议发送数据 - 📤 将 Excel 数据格式化为键值对格式并发送到指定 IP 和端口 - ⏱️ 支持发送间隔控制(默认 100ms) ## 安装 ### 从源码构建 ```bash # 克隆仓库 git clone cd ot # 构建 make package # 构建后的可执行文件位于 build/ot ``` ### 使用 Makefile ```bash # 运行项目 make run # 构建 Linux 可执行文件 make package # 格式化代码 make format # 清理构建文件 make clean # 生成文档 make gen-doc ``` ## 使用方法 ### 基本用法 ```bash ./build/ot -d /path/to/excel/directory ``` ### 命令行参数 | 参数 | 说明 | 默认值 | 示例 | |------|------|--------|------| | `-d` | 指定要处理的 Excel 目录路径 | `/Users/mafei/Downloads/data` | `-d /path/to/excel` | | `-n` | 指定 Excel 从第几行开始处理(作为标题行) | `8` | `-n 10` | | `-port` | 输出到哪个端口 | `20000` | `-port 8080` | | `-ip` | 输出到哪个 IP 地址 | `127.0.0.1` | `-ip 192.168.1.100` | | `-p` | 协议类型(tcp 或 udp) | `tcp` | `-p udp` | ### 使用示例 ```bash # 处理指定目录的 Excel 文件,使用 TCP 协议发送到本地 20000 端口 ./build/ot -d /Users/mafei/Downloads/data -n 8 -ip 127.0.0.1 -port 20000 -p tcp # 处理 Excel 文件,从第 10 行开始,使用 UDP 协议发送到远程服务器 ./build/ot -d /path/to/excel -n 10 -ip 192.168.1.100 -port 3000 -p udp ``` ## 数据格式 工具会将 Excel 数据转换为以下格式: ``` 键1=值1|!键2=值2|!键3=值3|! ``` - 标题行(第 `n` 行)作为键 - 从第 `n+1` 行开始的数据行作为值 - 每对键值用 `|!` 分隔 ## 工作流程 1. 遍历指定目录,查找所有 `.xlsx` 和 `.csv` 文件 2. 对每个文件: - 打开 Excel 文件 - 读取第一个工作表 - 使用第 `n` 行作为标题行 - 从第 `n+1` 行开始读取数据 - 将每行数据格式化为键值对 - 通过指定的协议(TCP/UDP)发送到服务器 - 每行数据发送间隔 100ms ## 依赖 - Go 1.21.4+ - [excelize](https://github.com/xuri/excelize/v2) - Excel 文件处理 - [zerolog](https://github.com/rs/zerolog) - 日志记录 - [viper](https://github.com/spf13/viper) - 配置管理 ## 项目结构 ``` ot/ ├── cmd/ot/ # 主程序入口 ├── core/ # 核心业务逻辑 │ ├── process.go # 处理流程 │ └── utils/ # 工具函数 ├── build/ # 构建输出目录 ├── internal/ # 内部包 └── Makefile # 构建脚本 ``` ## 注意事项 - 确保目标服务器正在运行并监听指定端口 - Excel 文件必须包含足够的行数(至少 `n` 行) - 隐藏文件(以 `.` 开头)会被自动跳过 - 只处理第一个工作表的数据 ## 许可证 详见 [LICENSE](LICENSE) 文件 ## 贡献 欢迎提交 Issue 和 Pull Request!