Posted on Wed 10th Feb 2021 20:30

Spreadsheet software like MS Excel and Calc use letters to label its columns. They start from “A” and continue to “Z”, “AA” and so on. You may recognise this as base-26. From right-to-left, each letter (or digit), has the value of 26 to the power of its zero-indexed position.

So, For “ABC”, you have:

C = 3 * (26 ^ 0) = 3 * 1 = 3

B = 2 * (26 ^ 1) = 2 * 26 = 52

A = 1 * (26 ^ 2) = 1 * 676 = 676

ABC = 3 + 52 + 676

ABC = 731

This is my implementation for converting column-letters and row-numbers to X-and-Y coordinates.

The code was a pretty straight-forward exercise. I did make a point of not using regex. I’ll include the class below (as always).

The usage is as follows:

```
SpreadsheetCoord.ConvertToCoord("ABC1");
SpreadsheetCoord.ConvertToColumnCode(731, 1);
```

Well, that’s is.

I hope someone finds this useful.

Copyright © 2014-2022 Ray Lam. All Rights Reserved.