Skip to main content

Markdown 转 Excel 工具 - 支持将 Markdown 表格转换为格式化的 Excel 文件

Project description

Markdown 转 Excel 工具

一个强大的 Python 工具,用于将 Markdown 表格转换为格式精美的 Excel 文件。支持命令行和图形界面两种使用方式。

✨ 功能特性

  • 📄 智能解析:自动识别和解析 Markdown 文件中的多个表格
  • 🎨 精美样式:自动生成带有专业样式的 Excel 文件
    • 标题行高亮显示
    • 自适应列宽和行高
    • 绿色边框标识第一列
    • C、D 列居中对齐
  • 🔄 多表格支持:每个 Markdown 表格转换为独立的工作表
  • 💾 智能覆盖:自动处理同名文件,支持备份机制
  • 🖥️ 双模式运行:支持命令行和图形界面两种方式
  • 🌏 中文友好:完美支持中文字符和换行处理

📋 系统要求

  • Python 3.7 或更高版本
  • 支持的操作系统:Windows、Linux、macOS

🚀 快速开始

安装

# 克隆或下载项目后,进入项目目录
cd my_project

# 安装依赖
pip install openpyxl

# 或者使用 pyproject.toml 安装
pip install .

使用方法

方式一:命令行模式

# 交互式输入
python -m md_to_excel.md_to_excel

# 直接指定文件
python -m md_to_excel.md_to_excel input.md output.xlsx

# 仅指定输入文件(输出文件自动生成)
python -m md_to_excel.md_to_excel input.md

方式二:图形界面模式

# 启动 GUI
python -m md_to_excel.md_to_excel_gui

图形界面提供:

  • 可视化文件选择
  • 实时进度显示
  • 友好的错误提示
  • 一键转换操作

📖 使用示例

Markdown 输入示例

创建 example.md 文件:

# 示例文档

这是一个测试表格:

| 姓名 | 年龄 | 城市 | 职业 |
|------|------|------|------|
| 张三 | 25 | 北京 | 工程师 |
| 李四 | 30 | 上海 | 设计师 |
| 王五 | 28 | 广州 | 产品经理 |

另一个表格:

| 产品 | 价格 | 库存 |
|------|------|------|
| 手机 | 5999 | 100 |
| 电脑 | 8999 | 50 |
| 平板 | 3999 | 75 |

运行转换

python -m md_to_excel.md_to_excel example.md

生成的 example.xlsx 将包含两个工作表,每个表格都有专业的样式和格式。

🛠️ 技术细节

样式设计

  • 标题行:浅蓝色背景 (#B4C6E7),加粗字体,居中对齐
  • 数据行:白色背景,微软雅黑字体
  • 边框:黑色细边框,第一列使用绿色边框突出
  • 对齐方式
    • C、D 列:居中对齐
    • 其他列:左对齐
  • 冻结窗格:首行冻结,方便滚动查看

智能优化

  • 列宽自适应:根据内容自动调整,最小 12,最大 50
  • 行高自适应:根据换行数量动态调整
  • 换行处理:自动将 <br> 标签转换为 Excel 换行符
  • 中文支持:中文字符按 2 倍宽度计算

📦 项目结构

my_project/
├── my_package/
│   ├── __init__.py
│   ├── md_to_excel.py          # 核心转换逻辑
│   └── md_to_excel_gui.py      # 图形界面
├── pyproject.toml              # 项目配置
└── README.md                   # 项目说明

🔧 开发指南

安装开发依赖

pip install .[dev]

代码格式化

black md_to_excel/

运行测试

pytest tests/

🐛 常见问题

Q: 转换时提示"文件正被使用"?

A: 请关闭已打开的 Excel 文件后重试。程序会自动尝试生成备份文件。

Q: 表格没有被识别?

A: 确保 Markdown 表格格式正确,必须包含:

  • | 开头和结尾
  • 包含分隔符行(|---|---|
  • 单元格之间用 | 分隔

Q: 如何自定义样式?

A: 修改 md_to_excel.py 中的 _create_styles() 函数即可自定义颜色、字体等样式。

Q: 支持哪些 Markdown 表格格式?

A: 支持标准的 GitHub Flavored Markdown 表格格式,包括:

  • 基本表格
  • 带对齐标记的表格
  • 包含 HTML 换行标签的表格

📝 API 参考

主要函数

convert_md_to_excel(md_file_path, excel_file_path=None)

主转换函数

参数:

  • md_file_path (str): Markdown 文件路径
  • excel_file_path (str, optional): Excel 输出文件路径,默认为 None(自动生成)

返回:

  • bool: 转换是否成功

示例:

from md_to_excel.md_to_excel import convert_md_to_excel

success = convert_md_to_excel("input.md", "output.xlsx")
if success:
  print("转换成功!")

parse_markdown_tables(content)

从 Markdown 内容中解析表格

参数:

  • content (str): Markdown 文本内容

返回:

  • list: 表格数据列表

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

👤 作者

https://github.com/FovLucky-heng

🙏 致谢

  • openpyxl - Excel 文件操作库
  • 所有贡献者和使用者

📮 联系方式

如有问题或建议,请通过以下方式联系:


享受高效的 Markdown 到 Excel 转换体验! 🎉

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

md_to_excel-1.0.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

md_to_excel-1.0.0-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file md_to_excel-1.0.0.tar.gz.

File metadata

  • Download URL: md_to_excel-1.0.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for md_to_excel-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0bd3dbfc028541f2fa747220bef1134af9e374c1adcc7e0e9f830422e6930be2
MD5 291f311d0dd9a3b347fe8bb3976a99f3
BLAKE2b-256 faea94998776ed149a9c587608ab4bc577c9d244ceb77e683aaeeab93a419a0a

See more details on using hashes here.

File details

Details for the file md_to_excel-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: md_to_excel-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for md_to_excel-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b31925435ee4d5fb33171dda640f5971b33ed0306bac527a50a260e4e3ccc6b
MD5 21cc400d92fae3e24e4248b7cbab0cf7
BLAKE2b-256 5429812d278608220bf3beba7d3cc97989b21aea878dcb9f91cd5e2d91ed0240

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page