最近开发中涉及到将结果导出到 Excel 文件的功能,我看了一下现有的这些操作 Excel 的开源项目,无论是 Golang 还是 Python,基本上都不支持一次性插入一行数据,只能通过指定 cell 位置来一个个插入,而一个 cell 的位置基本包含这三项(sheet 名,列标,行号),sheet 名好说,毕竟是我自己生成的名字;行号也比较方便拿到;但是列标就有一丢丢蛋疼了,都是由字母拼成的,既然没有现成的实现,就只能自己实时计算了。

比如:

通过上面的归纳,可以看出,这其实是一个动态规划的问题,每一个 n 对应的列标值为 n/26 + n%26,前 26 个列标均为单个字母,它们不需要与其他字母进行组合。所以根据这个逻辑可以得到下面的公式:

动态规划的问题一般来说只要能归纳出上的计算公式,那对应的代码逻辑其实就比较简单了,上代码: