Automation
Macros, Python scripts for files and PDFs, no-code automations and repetitive flows to hand over to the computer.
Send automated emails with Python: attachments and credentials
How to send automated emails with Python and smtplib: attachments, encrypted connections, app passwords, credentials kept out of code, paced sends.
Automated Excel reports with Python and openpyxl
How to build automated Excel files with Python and openpyxl: data and formulas, number formats, widths, filters, frozen panes and charts ready to send.
Batch convert documents to PDF with LibreOffice
How to convert dozens of Word, Excel and PowerPoint files to PDF with LibreOffice from the command line, PDF/A included, and automate it with a script.
Batch rename files with Python: a practical and safe guide
How to batch rename hundreds of files with Python and pathlib: dates in names, numbering, dry runs, name conflicts and a log of every change.
Batch resize and convert images with Python
How to resize, compress and convert hundreds of images with Python and Pillow: aspect ratio, orientation, JPEG quality, WebP and GPS metadata.
Combine dozens of Excel files into one with Python and pandas
How to consolidate many Excel or CSV files into one table with pandas: read a folder, align columns, track where each row came from, catch duplicates.
Extract text and tables from PDFs with Python and pdfplumber
How to extract text and tables from digital PDFs with Python and pdfplumber, save them to CSV or Excel, and know when scanned documents need OCR.
Your first VBA macro in Excel: record, read and improve it
How to record a macro in Excel, read the VBA code it generates, make it more robust and save it in the right format, with a practical example.
Generate Word documents from a template with Python and docxtpl
How to produce letters, quotes and contracts in Word from a template with placeholders, using Python, docxtpl and data taken from an Excel spreadsheet.
Google Apps Script for Google Sheets: serverless automation
Automate Google Sheets with Apps Script: read and write cells, add a custom menu, send emails and schedule time-driven triggers, with practical examples.
LibreOffice macros: Basic, the recorder and first scripts
Macros in LibreOffice Calc and Writer: enable the recorder, write readable Basic code, work with sheets and cells and set up macro security properly.
Mail merge in Word and Writer: letters and labels in bulk
A practical guide to mail merge in Word and LibreOffice Writer: preparing the list in Excel, inserting fields, using rules and avoiding mistakes.
Merge, split and rotate PDF files with Python and pypdf
How to merge, split, rotate and extract pages from PDF files with Python and the pypdf library, with ready-made examples for invoices and scans.
No-code automation: triggers, actions and flows that hold up
How no-code automation platforms such as Zapier, Make, n8n and Power Automate work: triggers, actions, filters, field mapping and handling errors.
OCR for scanned documents: searchable PDFs with OCRmyPDF
How to make scanned PDFs searchable with OCRmyPDF and Tesseract: installation, language packs, deskewing, processing whole folders and checking the output.
An automation inventory: who runs them and how to fix them
How to keep an inventory of office automations: a sheet for each flow, owner, dependencies, credentials, recovery procedure and regular reviews.
Power Automate for desktop: automate programs without an API
What RPA is and how to use Power Automate for desktop on Windows: the recorder, UI elements, variables, loops over Excel data and its limits.
PowerShell for office files: move, archive and clean up
PowerShell commands to organise office files: filter by date and extension, move into folders, compress archives and test everything first with -WhatIf.
Reliable office scripts: logging, errors and alerts in Python
How to make office automation scripts in Python reliable: logging to file, exception handling, exit codes, notifications and overlap safeguards.
Run a script with a double-click: batch files and shortcuts
How to let colleagues use a Python script without a terminal: .bat files, drag and drop onto an icon, the Send to menu, shortcuts and executables.
Automatically save email attachments with Python and IMAP
How to download email attachments automatically with Python and IMAP: search for messages, save files under safe names and mark the processed messages.
Text expanders: type less with abbreviations and snippets
Text expanders, AutoHotkey, espanso, macOS text replacements and Word Quick Parts to insert signatures, standard replies and dates in seconds.
Watch folders: react to new files with Python
How to build a watch folder with Python and watchdog: catch new files, wait until they are complete, process them and handle errors and restarts properly.
What to automate in the office: measure before you build
A practical method for choosing which office tasks to automate: list the repetitions, estimate the time saved, and weigh up risks and maintenance.
Windows Task Scheduler: make your scripts run on their own
How to use Windows Task Scheduler to launch scripts and programs at set times or on events, with reliable settings, the schtasks command and task history.