malenki/coord2coord

将电子表格坐标转换为数值坐标,反之亦然

1.2.0 2016-03-31 10:09 UTC

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

简单,不是吗?