【发布时间】:2017-04-13 19:35:28
【问题描述】:
我有一个以十进制格式 (1,1) 输出 excel 坐标的 API。我正在尝试从像 (1,1) 这样的 excel 的十进制坐标转换为 excel 中的 A1,因为我有另一个 API,我试图提供只接受经典 excel 样式坐标输入的坐标, A1。
我希望能够从 API (100,45) 获取输出并将其转换为 CW45 以输入到其他 API
我怎样才能做到这一点?
当数字是 BY ITSELF 时,我确实知道如何转换为字母:
function Convert-ToLetters ([parameter(Mandatory=$true,ValueFromPipeline=$true)][int] $value) {
$currVal = $value;
$returnVal = '';
while ($currVal -ge 26) {
$returnVal = [char](($currVal) % 26 + 65) + $returnVal;
$currVal = [int][math]::Floor($currVal / 26)
}
$returnVal = [char](($currVal) + 64) + $returnVal;
return $returnVal
}
但我不知道如何在 (1,2) 中做第一个数字并忽略第二个数字并将其组合在一起最终成为 A2 而不是 (A,2)
谢谢
感谢@MikeGaruccio 的帮助
最后是
$oldCoordinates = @(1,1)
$newCoordinates = "$(Convert-ToLetters $oldCoordinates[0])$($oldCoordinates[1])"
如果我有一个输入,我已经将它变成了一个像 $boo = (x,y) 这样的变量,其中 x 和 y 代表任何一组数字,而不是字母本身;就这么简单:
$oldCoordinates = @($boo)
$newCoordinates = "$(Convert-ToLetters $oldCoordinates[0])$($oldCoordinates[1])"
【问题讨论】:
-
所以你这样称呼那个函数:
Convert-ToLetters 1.2?
标签: excel powershell data-conversion