
Office Document Specialist Suite
- 9 installs
- 33 repo stars
- Updated April 26, 2026
- bighardperson/computer-science-skills-collection
office-document-specialist-suite is a Claude skill for creating, editing, and analyzing Microsoft Office Word, Excel, and PowerPoint documents.
About
office-document-specialist-suite is a skill for creating, editing, and analyzing Microsoft Office documents across Word, Excel, and PowerPoint. It builds reports and tables in Word, does data analysis and formatting in Excel, and generates slide decks from structured data in PowerPoint. A developer uses it for automated reporting and document management, driven programmatically or via CLI scripts.
- Creates, edits, and analyzes Word, Excel, and PowerPoint documents
- Built on python-docx, openpyxl, and python-pptx
- Targets automated reporting and document management
Office Document Specialist Suite by the numbers
- 9 all-time installs (skills.sh)
- Ranked #496 of 687 Office & Documents skills by installs in the Skillselion catalog
- Data as of Jul 30, 2026 (Skillselion catalog sync)
office-document-specialist-suite capabilities & compatibility
- Capabilities
- docx generation · xlsx generation · pptx generation · document analysis
- Works with
- excel
- Use cases
- documentation · presentations · data analysis
- Pricing
- Free
What office-document-specialist-suite says it does
Advanced suite for creating, editing, and analyzing Microsoft Office documents (Word, Excel, PowerPoint).
npx skills add https://github.com/bighardperson/computer-science-skills-collection --skill office-document-specialist-suiteAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 9 |
|---|---|
| repo stars | ★ 33 |
| Last updated | April 26, 2026 |
| Repository | bighardperson/computer-science-skills-collection ↗ |
What it does
Create, edit, and analyze Word, Excel, and PowerPoint documents for automated reporting.
Who is it for?
Automated reporting and document management across Word, Excel, and PowerPoint.
Skip if: Non-Office document formats or design-first PDF generation.
When should I use this skill?
You need to create, edit, or analyze a Word, Excel, or PowerPoint document programmatically.
What you get
Generated or edited .docx, .xlsx, and .pptx documents with styles, tables, and slides.
- Word (.docx) reports
- Excel (.xlsx) files
- PowerPoint (.pptx) decks
By the numbers
- 3 Office formats (Word, Excel, PowerPoint)
Files
Office Document Specialist Suite
A specialized toolset for professional document manipulation.
Features
- Word (.docx): Create and edit professional reports, manage styles, and insert tables/images.
- Excel (.xlsx): Data analysis, automated spreadsheet generation, and complex formatting.
- PowerPoint (.pptx): Automated slide deck creation from structured data.
Usage
Each tool in the suite is designed to be called programmatically by the agent or via the provided CLI scripts.
Installation
Run the included setup.sh to initialize the Python virtual environment and install dependencies.
{
"ownerId": "kn7f158swe9mt04ydr52vg9whn81f03g",
"slug": "office-document-specialist-suite",
"version": "1.0.2",
"publishedAt": 1771541870166
}{
"version": 1,
"registry": "https://clawhub.ai",
"slug": "office-document-specialist-suite",
"installedVersion": "1.0.2",
"installedAt": 1776068644085
}
#!/usr/bin/env python3
from __future__ import annotations
import argparse
from datetime import date
from pathlib import Path
from docx import Document
from docx.enum.section import WD_ORIENTATION
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml import OxmlElement
from docx.oxml.ns import qn
from docx.shared import Cm, Pt, RGBColor
def set_paragraph_spacing(style, before=0, after=6, line=1.15):
fmt = style.paragraph_format
fmt.space_before = Pt(before)
fmt.space_after = Pt(after)
fmt.line_spacing = line
def ensure_style(doc: Document, name: str, base: str | None = None, size: int = 11, bold=False, color=None):
styles = doc.styles
if name in [s.name for s in styles]:
style = styles[name]
else:
style = styles.add_style(name, 1)
if base:
style.base_style = styles[base]
font = style.font
font.name = "Calibri"
font.size = Pt(size)
font.bold = bold
if color:
font.color.rgb = RGBColor(*color)
set_paragraph_spacing(style)
return style
def insert_page_number(paragraph):
paragraph.alignment = WD_ALIGN_PARAGRAPH.RIGHT
run = paragraph.add_run()
fld_char1 = OxmlElement('w:fldChar')
fld_char1.set(qn('w:fldCharType'), 'begin')
instr_text = OxmlElement('w:instrText')
instr_text.set(qn('xml:space'), 'preserve')
instr_text.text = " PAGE "
fld_char2 = OxmlElement('w:fldChar')
fld_char2.set(qn('w:fldCharType'), 'end')
run._r.append(fld_char1)
run._r.append(instr_text)
run._r.append(fld_char2)
def apply_advanced_layout(doc: Document, landscape=False):
section = doc.sections[0]
section.top_margin = Cm(2.2)
section.bottom_margin = Cm(2.2)
section.left_margin = Cm(2.4)
section.right_margin = Cm(2.4)
if landscape:
section.orientation = WD_ORIENTATION.LANDSCAPE
section.page_width, section.page_height = section.page_height, section.page_width
header = section.header.paragraphs[0]
header.text = "Office Document Specialist Suite"
header.alignment = WD_ALIGN_PARAGRAPH.LEFT
footer = section.footer.paragraphs[0]
footer.text = ""
insert_page_number(footer)
def configure_styles(doc: Document):
normal = doc.styles["Normal"]
normal.font.name = "Calibri"
normal.font.size = Pt(11)
set_paragraph_spacing(normal, before=0, after=6, line=1.15)
h1 = doc.styles["Heading 1"]
h1.font.name = "Calibri"
h1.font.size = Pt(18)
h1.font.bold = True
h1.font.color.rgb = RGBColor(0x1F, 0x4E, 0x78)
set_paragraph_spacing(h1, before=12, after=8, line=1.2)
h2 = doc.styles["Heading 2"]
h2.font.name = "Calibri"
h2.font.size = Pt(14)
h2.font.bold = True
h2.font.color.rgb = RGBColor(0x2F, 0x55, 0x8C)
set_paragraph_spacing(h2, before=10, after=6, line=1.2)
ensure_style(doc, "Quote Accent", base="Normal", size=11, color=(85, 85, 85))
def cmd_template_report(output: Path, title: str, author: str):
doc = Document()
apply_advanced_layout(doc)
configure_styles(doc)
p = doc.add_paragraph(title, style="Title")
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
p2 = doc.add_paragraph(f"Auteur: {author}\nDatum: {date.today().isoformat()}")
p2.alignment = WD_ALIGN_PARAGRAPH.CENTER
doc.add_page_break()
doc.add_paragraph("Inhoudsopgave", style="Heading 1")
doc.add_paragraph("(Werk de inhoudsopgave bij in Word/LibreOffice: rechtsklik > Veld bijwerken)")
doc.add_page_break()
doc.add_paragraph("1. Samenvatting", style="Heading 1")
doc.add_paragraph("Vul hier de managementsamenvatting in.")
doc.add_paragraph("2. Analyse", style="Heading 1")
doc.add_paragraph("Gebruik koppen op niveau 2 en 3 voor structuur.")
quote = doc.add_paragraph("Belangrijke observatie of citaat.", style="Quote Accent")
quote.paragraph_format.left_indent = Cm(1)
doc.add_paragraph("2.1 Detailsectie", style="Heading 2")
doc.add_paragraph("Plaats hier tabellen, figuren en technische uitwerking.")
doc.save(output)
print(f"Template aangemaakt: {output}")
def cmd_style_doc(input_file: Path, output_file: Path, landscape: bool):
doc = Document(input_file)
apply_advanced_layout(doc, landscape=landscape)
configure_styles(doc)
doc.save(output_file)
print(f"Opmaak toegepast: {output_file}")
def build_parser():
parser = argparse.ArgumentParser(description="Office Document Specialist Suite")
sub = parser.add_subparsers(dest="command", required=True)
rep = sub.add_parser("template-report", help="Maak geavanceerd rapporttemplate (.docx)")
rep.add_argument("--output", default="rapport-template.docx", type=Path)
rep.add_argument("--title", default="Rapporttitel")
rep.add_argument("--author", default="Onbekend")
sty = sub.add_parser("style-doc", help="Pas geavanceerde opmaak toe op bestaand .docx")
sty.add_argument("input", type=Path)
sty.add_argument("--output", default="styled-output.docx", type=Path)
sty.add_argument("--landscape", action="store_true")
return parser
def main():
parser = build_parser()
args = parser.parse_args()
if args.command == "template-report":
cmd_template_report(args.output, args.title, args.author)
elif args.command == "style-doc":
cmd_style_doc(args.input, args.output, args.landscape)
if __name__ == "__main__":
main()
python-docx>=1.1.2
lxml>=5.3.0
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
echo "Klaar. Gebruik:"
echo " source .venv/bin/activate"
echo " python ods.py template-report --output rapport.docx --title 'Q1 Analyse' --author 'Robert'"
Related skills
FAQ
Which Office apps does the suite cover?
Word (.docx), Excel (.xlsx), and PowerPoint (.pptx).
What does installation require?
Running setup.sh to create a Python virtual environment and install python-docx, openpyxl, and python-pptx.