Excel Cleaner
- Problem
- Client spreadsheets arrive with hidden macros, objects and messy formatting that break whatever reads them next.
- Built
- A web tool that takes the raw XLSX and gives back clean, structured data.
I'm Azaz, a software developer and QA engineer in Ahmedabad. I work on a product that reads structural drawings, works out every steel bar in a building and plans how to cut it from 12 m stock. I write the code, try to break it, then ship it.
A structural drawing tells you the steel in a beam with a short label such as 2L-T8-150 C/C. An engineer reads it in a second. A program has to be taught every way it can be written.
Someone reads each label off the drawing and types the bars into a sheet, beam after beam, floor after floor. It is slow, and one misread digit quietly changes the steel order.
There is no fixed format. 2L-T8-150 C/C, T8@150 and 8Φ @ 150 c/c all mean the same bar. Labels also leave things out, and a wrong guess looks exactly like a right answer.
Treat the label as a small language: reduce every spelling to one form, read it into fields, then check each field against what steel actually exists.
When something is missing, say what was assumed. When it can't be read, flag it, never guess.
The dashed ones are wrong on purpose.
A schedule asks for hundreds of pieces in a dozen lengths. Every one has to be cut from a standard bar, and whatever is left at the end of a bar is steel that was paid for and thrown away.
On site, bars are usually cut in the order the schedule lists them. That is easy to follow, but it leaves a long tail on bar after bar.
The number of ways to fill one bar grows very fast with each new length, and the best cut for this bar can ruin the next one. Trying everything is not an option on a real schedule.
Search the ways to fill one bar, keep the one with the smallest tail, repeat it while the demand lasts, then search again.
A simple plan runs alongside as a floor, so the result is never worse than the easy way. Bad input is rejected before the search starts.
Try a length of 0, or one longer than the bar.
People order steel from these numbers. A formula that is off by one bend is not a bug report, it is a truck of wrong bars. So I write the checks along with the code.
The same bar length shows on the screen, in the Excel export and in the cutting report. Change the rule in one place and the three can silently disagree.
The failures are quiet. Nothing crashes. A number is simply a little wrong, and the first person to notice is standing next to a bending machine.
Work each case by hand first, then pin it as a check. Test the edges on purpose: zero, too long, missing, written oddly.
Run every check on every merge, and deploy only when they pass.
| Case | Input | Expected | Got | Result |
|---|
Smaller problems, same habit: find the manual step and remove it.
Watch the real steps and write down the limits that never move: 12 m stock, a cover dimension, a code rule. Everything else obeys those.
If I can't get the answer by hand, I can't tell whether the code is right. The hand-worked case becomes the first test.
AI tools draft code, tests and docs with me daily. The hand-worked case and the checks decide what stays, not the tool.
One element working end to end, from input to export, beats four half-finished ones. Then widen it.
Zero, negative, too long, missing, written oddly. Each failure found here is one a user never sees.
Same habit as the rest of this page: find the manual step, hand it to a machine, and keep a check on the result.
Regression suites that click through the web app on their own, so a release is not held up by a person repeating the same steps.
A pipeline that tests, builds and deploys every merge. Nobody copies files to a server by hand.
Where a fixed script is not enough, an AI step reads the input and decides: a chatbot that answers, or an agent that finishes a multi-step task.
Each one is here because I've used it on real work. Point at a tool to see what I use it for.
Send me the messy version: the spreadsheet, the drawing, the steps someone repeats every week. I'm based in Ahmedabad and work remotely too.