Office Document Extractor

👤 michealxie001 📦 v1.0.1 ⭐ 4.3 ⬇️ 772 下载
📄 办公效率 免费

📖 技能介绍

Office Document Extractor

Zero-dependency converter for Microsoft Office documents. Extracts text and structure from DOCX, XLSX, and PPTX files into clean Markdown.

7w4.net收录了海量优质技能插件。

Quick Start

# Single file
python3 scripts/main.py report.docx -o report.md

# Batch convert a directory
python3 scripts/main.py ./documents --batch -o ./markdown

Supported Formats

Format Extension Output
Word .docx Headings, paragraphs
Excel .xlsx Tables (one per sheet)
PowerPoint .pptx Slides as sections

How It Works

  • DOCX: Parses the ZIP archive's XML directly using Python's zipfile and xml.etree
  • XLSX: Uses bundled openpyxl (pure Python, no C extensions)
  • PPTX: Parses the ZIP archive's slide XML directly

No external commands, no network calls, no pip install required.

Usage

Single File

python3 scripts/main.py <input_file> [-o <output.md>]

Auto-detects format from file extension. If -o is omitted, outputs to <input>.md.

Batch Conversion

python3 scripts/main.py <input_directory> --batch [-o <output_directory>]

Converts all .docx, .xlsx, .pptx files in the directory. Results saved to markdown_output/ by default.

Resources

scripts/

  • main.py — Unified CLI for single-file and batch conversion
  • docx_extractor.py — DOCX → Markdown (standard library only)
  • xlsx_extractor.py — XLSX → Markdown tables (bundled openpyxl)
  • pptx_extractor.py — PPTX → Markdown (standard library only)

Bundled Dependencies

  • openpyxl/ — Pure Python Excel library (v3.1.5)
  • et_xmlfile/ — openpyxl dependency (pure Python)

Limitations

  • Does not extract images or embedded objects (text only)
  • Does not preserve complex formatting (colors, fonts, layouts)
  • Does not handle encrypted/password-protected files
  • No OCR for scanned documents (use OpenClaw's native pdf tool for that)

Why This Skill?

Existing markitdown-based skills require pip install or external CLI tools, which triggers ClawHub security warnings. This skill is 100% self-contained — install it and use it immediately, even offline.

🤖 AI 评测

这是一个功能实用的文档转换工具,能将 Word、Excel、PowerPoint 文档转为 Markdown 格式。优点是无需安装额外依赖即可使用,界面简洁操作方便。不足是只能提取文字内容,无法保留原文档中的图片、样式和排版,对加密文件也无法处理。适合对格式要求不高的文本提取场景使用。

📊 多维度评分

适应性4.8
规范性4.2
有效性4.2
可靠性4.2
可信度4.8

📁 包含文件 (199 个)

📄 SKILL.md 2.5 KB
📄 _meta.json 139 B
📄 scripts/docx_extractor.py 2.8 KB
📄 scripts/et_xmlfile/__init__.py 228 B
📄 scripts/et_xmlfile/incremental_tree.py 33.7 KB
📄 scripts/et_xmlfile/xmlfile.py 4.8 KB
📄 scripts/main.py 2.9 KB
📄 scripts/openpyxl/__init__.py 603 B
📄 scripts/openpyxl/_constants.py 306 B
📄 scripts/openpyxl/cell/__init__.py 122 B
📄 scripts/openpyxl/cell/_writer.py 3.9 KB
📄 scripts/openpyxl/cell/cell.py 8.7 KB
📄 scripts/openpyxl/cell/read_only.py 3 KB
📄 scripts/openpyxl/cell/rich_text.py 5.5 KB
📄 scripts/openpyxl/cell/text.py 4.3 KB
📄 scripts/openpyxl/chart/_3d.py 3 KB
📄 scripts/openpyxl/chart/__init__.py 564 B
📄 scripts/openpyxl/chart/_chart.py 5.6 KB
📄 scripts/openpyxl/chart/area_chart.py 2.8 KB
📄 scripts/openpyxl/chart/axis.py 12.3 KB
📄 scripts/openpyxl/chart/bar_chart.py 4 KB
📄 scripts/openpyxl/chart/bubble_chart.py 2 KB
📄 scripts/openpyxl/chart/chartspace.py 5.9 KB
📄 scripts/openpyxl/chart/data_source.py 5.6 KB
📄 scripts/openpyxl/chart/descriptors.py 736 B
📄 scripts/openpyxl/chart/error_bar.py 1.8 KB
📄 scripts/openpyxl/chart/label.py 4 KB
📄 scripts/openpyxl/chart/layout.py 2 KB
📄 scripts/openpyxl/chart/legend.py 2 KB
📄 scripts/openpyxl/chart/line_chart.py 3.9 KB
📄 scripts/openpyxl/chart/marker.py 2.5 KB
📄 scripts/openpyxl/chart/picture.py 1.1 KB
📄 scripts/openpyxl/chart/pie_chart.py 4.7 KB
📄 scripts/openpyxl/chart/pivot.py 1.7 KB
📄 scripts/openpyxl/chart/plotarea.py 5.7 KB
📄 scripts/openpyxl/chart/print_settings.py 1.4 KB
📄 scripts/openpyxl/chart/radar_chart.py 1.5 KB
📄 scripts/openpyxl/chart/reader.py 802 B
📄 scripts/openpyxl/chart/reference.py 3 KB
📄 scripts/openpyxl/chart/scatter_chart.py 1.5 KB
📄 scripts/openpyxl/chart/series.py 5.8 KB
📄 scripts/openpyxl/chart/series_factory.py 1.3 KB
📄 scripts/openpyxl/chart/shapes.py 2.7 KB
📄 scripts/openpyxl/chart/stock_chart.py 1.6 KB
📄 scripts/openpyxl/chart/surface_chart.py 2.8 KB
📄 scripts/openpyxl/chart/text.py 1.8 KB
📄 scripts/openpyxl/chart/title.py 1.9 KB
📄 scripts/openpyxl/chart/trendline.py 3 KB
📄 scripts/openpyxl/chart/updown_bars.py 897 B
📄 scripts/openpyxl/chartsheet/__init__.py 71 B
📄 scripts/openpyxl/chartsheet/chartsheet.py 3.8 KB
📄 scripts/openpyxl/chartsheet/custom.py 1.7 KB
📄 scripts/openpyxl/chartsheet/properties.py 679 B
📄 scripts/openpyxl/chartsheet/protection.py 1.2 KB
📄 scripts/openpyxl/chartsheet/publish.py 1.5 KB
📄 scripts/openpyxl/chartsheet/relation.py 2.7 KB
📄 scripts/openpyxl/chartsheet/views.py 1.3 KB
📄 scripts/openpyxl/comments/__init__.py 67 B
📄 scripts/openpyxl/comments/author.py 388 B
📄 scripts/openpyxl/comments/comment_sheet.py 5.6 KB
📄 scripts/openpyxl/comments/comments.py 1.4 KB
📄 scripts/openpyxl/comments/shape_writer.py 3.7 KB
📄 scripts/openpyxl/compat/__init__.py 1.6 KB
📄 scripts/openpyxl/compat/abc.py 155 B
📄 scripts/openpyxl/compat/numbers.py 1.6 KB
📄 scripts/openpyxl/compat/product.py 264 B
📄 scripts/openpyxl/compat/singleton.py 1023 B
📄 scripts/openpyxl/compat/strings.py 604 B
📄 scripts/openpyxl/descriptors/__init__.py 1.9 KB
📄 scripts/openpyxl/descriptors/base.py 7 KB
📄 scripts/openpyxl/descriptors/container.py 889 B
📄 scripts/openpyxl/descriptors/excel.py 2.4 KB
📄 scripts/openpyxl/descriptors/namespace.py 313 B
📄 scripts/openpyxl/descriptors/nested.py 2.5 KB
📄 scripts/openpyxl/descriptors/sequence.py 3.4 KB
📄 scripts/openpyxl/descriptors/serialisable.py 7.2 KB
📄 scripts/openpyxl/descriptors/slots.py 824 B
📄 scripts/openpyxl/drawing/__init__.py 66 B
📄 scripts/openpyxl/drawing/colors.py 14.9 KB
📄 scripts/openpyxl/drawing/connector.py 3.8 KB
📄 scripts/openpyxl/drawing/drawing.py 2.3 KB
📄 scripts/openpyxl/drawing/effect.py 9.2 KB
📄 scripts/openpyxl/drawing/fill.py 12.8 KB
📄 scripts/openpyxl/drawing/geometry.py 17.1 KB
📄 scripts/openpyxl/drawing/graphic.py 4.7 KB
📄 scripts/openpyxl/drawing/image.py 1.4 KB
📄 scripts/openpyxl/drawing/line.py 3.8 KB
📄 scripts/openpyxl/drawing/picture.py 4.1 KB
📄 scripts/openpyxl/drawing/properties.py 4.8 KB
📄 scripts/openpyxl/drawing/relation.py 344 B
📄 scripts/openpyxl/drawing/spreadsheet_drawing.py 10.5 KB
📄 scripts/openpyxl/drawing/text.py 21.9 KB
📄 scripts/openpyxl/drawing/xdr.py 626 B
📄 scripts/openpyxl/formatting/__init__.py 59 B
📄 scripts/openpyxl/formatting/formatting.py 2.6 KB
📄 scripts/openpyxl/formatting/rule.py 9.1 KB
📄 scripts/openpyxl/formula/__init__.py 69 B
📄 scripts/openpyxl/formula/tokenizer.py 14.7 KB
📄 scripts/openpyxl/formula/translate.py 6.5 KB
📄 scripts/openpyxl/packaging/__init__.py 90 B
📄 scripts/openpyxl/packaging/core.py 4 KB
📄 scripts/openpyxl/packaging/custom.py 6.6 KB
📄 scripts/openpyxl/packaging/extended.py 4.7 KB
📄 scripts/openpyxl/packaging/interface.py 920 B
📄 scripts/openpyxl/packaging/manifest.py 5.2 KB
📄 scripts/openpyxl/packaging/relationship.py 3.9 KB
📄 scripts/openpyxl/packaging/workbook.py 6.3 KB
📄 scripts/openpyxl/pivot/__init__.py 35 B
📄 scripts/openpyxl/pivot/cache.py 27.2 KB
📄 scripts/openpyxl/pivot/fields.py 6.9 KB
📄 scripts/openpyxl/pivot/record.py 2.6 KB
📄 scripts/openpyxl/pivot/table.py 39.8 KB
📄 scripts/openpyxl/reader/__init__.py 35 B
📄 scripts/openpyxl/reader/drawings.py 2.2 KB
📄 scripts/openpyxl/reader/excel.py 12.1 KB
📄 scripts/openpyxl/reader/strings.py 1.1 KB
📄 scripts/openpyxl/reader/workbook.py 4.3 KB
📄 scripts/openpyxl/styles/__init__.py 363 B
📄 scripts/openpyxl/styles/alignment.py 2.1 KB
📄 scripts/openpyxl/styles/borders.py 3.2 KB
📄 scripts/openpyxl/styles/builtins.py 30.5 KB
📄 scripts/openpyxl/styles/cell_style.py 5.3 KB
📄 scripts/openpyxl/styles/colors.py 4.5 KB
📄 scripts/openpyxl/styles/differential.py 2.2 KB
📄 scripts/openpyxl/styles/fills.py 6.2 KB
📄 scripts/openpyxl/styles/fonts.py 3.4 KB
📄 scripts/openpyxl/styles/named_styles.py 7.1 KB
📄 scripts/openpyxl/styles/numbers.py 5 KB
📄 scripts/openpyxl/styles/protection.py 394 B
📄 scripts/openpyxl/styles/proxy.py 1.4 KB
📄 scripts/openpyxl/styles/styleable.py 4.4 KB
📄 scripts/openpyxl/styles/stylesheet.py 8.6 KB
📄 scripts/openpyxl/styles/table.py 2.7 KB
📄 scripts/openpyxl/utils/__init__.py 324 B
📄 scripts/openpyxl/utils/bound_dictionary.py 717 B
📄 scripts/openpyxl/utils/cell.py 6.8 KB
📄 scripts/openpyxl/utils/dataframe.py 2.9 KB
📄 scripts/openpyxl/utils/datetime.py 4.4 KB
📄 scripts/openpyxl/utils/escape.py 790 B
📄 scripts/openpyxl/utils/exceptions.py 889 B
📄 scripts/openpyxl/utils/formulas.py 4.1 KB
📄 scripts/openpyxl/utils/indexed_list.py 1.2 KB
📄 scripts/openpyxl/utils/inference.py 1.5 KB
📄 scripts/openpyxl/utils/protection.py 830 B
📄 scripts/openpyxl/utils/units.py 2.6 KB
📄 scripts/openpyxl/workbook/__init__.py 68 B
📄 scripts/openpyxl/workbook/_writer.py 6.4 KB
📄 scripts/openpyxl/workbook/child.py 4 KB
📄 scripts/openpyxl/workbook/defined_name.py 5.3 KB
📄 scripts/openpyxl/workbook/external_link/__init__.py 71 B
📄 scripts/openpyxl/workbook/external_link/external.py 4.4 KB
📄 scripts/openpyxl/workbook/external_reference.py 348 B
📄 scripts/openpyxl/workbook/function_group.py 803 B
📄 scripts/openpyxl/workbook/properties.py 5.1 KB
📄 scripts/openpyxl/workbook/protection.py 5.9 KB
📄 scripts/openpyxl/workbook/smart_tags.py 1.2 KB
📄 scripts/openpyxl/workbook/views.py 5.1 KB
📄 scripts/openpyxl/workbook/web.py 2.6 KB
📄 scripts/openpyxl/workbook/workbook.py 12.9 KB
📄 scripts/openpyxl/worksheet/__init__.py 35 B
📄 scripts/openpyxl/worksheet/_read_only.py 5.6 KB
📄 scripts/openpyxl/worksheet/_reader.py 16 KB
📄 scripts/openpyxl/worksheet/_write_only.py 4.1 KB
📄 scripts/openpyxl/worksheet/_writer.py 10 KB
📄 scripts/openpyxl/worksheet/cell_range.py 14.7 KB
📄 scripts/openpyxl/worksheet/cell_watch.py 608 B
📄 scripts/openpyxl/worksheet/controls.py 2.7 KB
📄 scripts/openpyxl/worksheet/copier.py 2.3 KB
📄 scripts/openpyxl/worksheet/custom.py 639 B
📄 scripts/openpyxl/worksheet/datavalidation.py 6 KB
📄 scripts/openpyxl/worksheet/dimensions.py 8.9 KB
📄 scripts/openpyxl/worksheet/drawing.py 275 B
📄 scripts/openpyxl/worksheet/errors.py 2.4 KB
📄 scripts/openpyxl/worksheet/filters.py 13.5 KB
📄 scripts/openpyxl/worksheet/formula.py 1 KB
📄 scripts/openpyxl/worksheet/header_footer.py 7.7 KB
📄 scripts/openpyxl/worksheet/hyperlink.py 1.1 KB
📄 scripts/openpyxl/worksheet/merge.py 4 KB
📄 scripts/openpyxl/worksheet/ole.py 3.4 KB
📄 scripts/openpyxl/worksheet/page.py 4.8 KB
📄 scripts/openpyxl/worksheet/pagebreak.py 1.8 KB
📄 scripts/openpyxl/worksheet/picture.py 185 B
📄 scripts/openpyxl/worksheet/print_settings.py 5.1 KB
📄 scripts/openpyxl/worksheet/properties.py 3 KB
📄 scripts/openpyxl/worksheet/protection.py 3.7 KB
📄 scripts/openpyxl/worksheet/related.py 335 B
📄 scripts/openpyxl/worksheet/scenario.py 2.3 KB
📄 scripts/openpyxl/worksheet/smart_tag.py 1.6 KB
📄 scripts/openpyxl/worksheet/table.py 11.4 KB
📄 scripts/openpyxl/worksheet/views.py 4.9 KB
📄 scripts/openpyxl/worksheet/worksheet.py 26.9 KB
📄 scripts/openpyxl/writer/__init__.py 35 B
📄 scripts/openpyxl/writer/excel.py 9.3 KB
📄 scripts/openpyxl/writer/theme.py 10.1 KB
📄 scripts/openpyxl/xml/__init__.py 1016 B
📄 scripts/openpyxl/xml/constants.py 4.7 KB
📄 scripts/openpyxl/xml/functions.py 2 KB
📄 scripts/pptx_extractor.py 2.5 KB
📄 scripts/xlsx_extractor.py 2.4 KB