ryanwold.net

A civic-minded citizen seeking the singularity

Back to Entries

Working with .xlsx files with Elixir Phoenix

Series: On Work
draft
Date: 2025-05-12

This post is about how to Transforming .xlsx file


A local architecture firm contacted me about a small software automation project.

One of their project management applications, Deltec was exporting data to a spreadsheet.

Elsewhere in the organization, a copy of that spreadsheet was being altered and manually entered into a spreadsheet used for managing project spend, projections, and staffing.


Problem

When the source data is updated, the downstream reporting artifacts also need to be updated.

Solution

First, we must understand the issue, and then take one or more steps to improve this situation.

Option 1 would be to update Deltec to provide the report directly. But given this isn't available at the moment, we'll move to Option 2.

Option 2 is to use the source spreadsheet and generate an automated artifact that can be used for analysis.

The trick will be to limit or prevent how much "state" can be stored in that analytical view.

Our goal, is to allow for a full-refresh. But the more notes and comments and customizations users have, the more difficult it is to refresh everything at once.

Read the source xlsx data into a web app using an Elixir Phoenix web form. Read the data in that spreadsheet. Extract from it the structured data the Deltec report writer provided. Re-cast that data into a spreadsheet with a different sorting and format.

By Ryan Wold · © 2025–2026 Ryan Wold

Licensed CC BY-NC 4.0. AI training requires a license — machine-readable terms.

Enjoyed this? — any BSV wallet, HandCash, or plain old dollars.

Leave a tip

Tips go directly to a Bitcoin SV address I control — peer to peer, no platform in between. A few thousand satoshis is a fraction of a cent; it's the gesture that counts.

From any BSV wallet

Scan the QR code with your wallet's camera, or copy the address.

177DwUfSTW8RkFBJzYYcgr1YB8ngbhTYAc

With HandCash or any paymail wallet

Paymail is an email-style address for Bitcoin wallets. Send any amount to afomi@handcash.io

First time using Bitcoin? Yours Wallet is an open-source browser extension wallet, and HandCash is an easy mobile wallet — either takes a minute to set up.

Prefer regular money? Support via OpenCollective.