malenki / coord2coord
将电子表格坐标转换为数值坐标,反之亦然
Requires
- php: >=5.3.0
- malenki/argile: >=3.0
This package is not auto-updated.
Last update: 2024-09-14 17:37:16 UTC
README
将电子表格列坐标转换为数值坐标,反之亦然
为什么?
有时,当你开发一些关于CSV或其他类似的东西的代码时,人们会使用电子表格值(列A、AA、Z…)或索引值(1、2、3)或甚至从零开始的索引值(0、1、2…)作为参考。
因此,这个小库就是处理这种情况的。所以,你可以轻松地在两种系统之间切换。
如何?
你可以通过两种方式来玩它
- 通过在代码中使用库
- 通过使用可用的CLI脚本。
使用库
非常简单,使用composer安装。你可以在https://packagist.org.cn/packages/malenki/coord2coord上找到它。
快速示例:将电子表格列名转换为从一开始的索引
use \Malenki\Coord2Coord; $c2c = new Coord2Coord(); echo $c2c->l2d('A'); // 1 echo $c2c->l2d('Z'); // 26 echo $c2c->l2d('AA'); // 27
现在用从零开始的索引来重复同样的操作(注意构造函数的调用)
use \Malenki\Coord2Coord; $c2c = new Coord2Coord(true); echo $c2c->l2d('A'); // 0 echo $c2c->l2d('Z'); // 25 echo $c2c->l2d('AA'); // 26
示例展示如何将索引转换为电子表格列名
use \Malenki\Coord2Coord; $c2c = new Coord2Coord(); echo $c2c->d2l(1); // 'A' echo $c2c->d2l(26); // 'Z' echo $c2c->d2l(27); // 'AA'
再次,我们也可以将起点设为零
use \Malenki\Coord2Coord; $c2c = new Coord2Coord(true); echo $c2c->d2l(0); // 'A' echo $c2c->d2l(25); // 'Z' echo $c2c->d2l(26); // 'AA'
你还可以神奇地将整数转换为字母或反之
use \Malenki\Coord2Coord; $c2c = new Coord2Coord(); echo $c2c->magic(1); // 'A' echo $c2c->magic('A'); // 1
这就全了!
但你也必须知道,如果你使用错误的索引值(负整数、非整数或当起点为一时为零)则会引发异常(如果不是整数则抛出InvalidArgumentException
,其他情况则抛出OutOfRangeException
)。
此外,如果你在将电子表格列名转换为索引时使用除ASCII字符a-zA-Z
之外的任何值,则会发生InvalidArgumentException
。
使用CLI脚本
再次,使用composer安装,然后在源代码的根目录中执行composer install
。
在bin\coord2coord
中有一个脚本可用。
另一种方法是使用PHAR文件,因此,只需下载它或使用box通过在源代码的根目录中执行box build
来创建它。
玩起来非常简单
bin\coord2coord --help #display help message
bin\coord2coord A Z AA 56 2
"A" => 1
"Z" => 26
"AA" => 27
"56" => BD
"2" => B
bin/coord2coord --zero A Z AA 56 2
"A" => 0
"Z" => 25
"AA" => 26
"56" => BE
"2" => C
简单,不是吗?