繁体   English   中英

如何在 PHP 中获取 xls 单元格 position

[英]How to get xls cell position in PHP

我正在尝试从 xls 文件中导入数据,为此我正在使用“电子表格库”,并且我以以下格式(数组)成功获取数据

[0] => Array
        (
            [0] => ABC
            [1] => XYZ
            ...
         )
[1] => Array
        (
            [1] => ADW
        )
...

现在我想将“单元格”值保存到数据库中,例如在“xls”文件中,“ABC”position 是“A1”而“XYZ”是“B1”,所以“ADW”position 是“A2”,那怎么能我使用 Php 得到“单元位置”?

您可以根据数组的索引计算单元格 position,其中行从索引 0 的 1 开始,列从索引 0 的A开始:

$data = array (
    0 => 
    array (
        0 => 'ABC',
        1 => 'XYZ'
    ),
    1 => 
    array (
        1 => 'ADW',
        20 => 'XYZ',
        26 => 'AA2',
        30 => 'PQR',
        60 => 'WWW',
        701 => 'ZZZ'
    )
);

$result = array();

foreach ($data as $rownum => $row) {
    foreach ($row as $colnum => $value) {
        if ($colnum >= 26) {
            $col0 = $colnum % 26;
            $col1 = intdiv($colnum, 26);
            $colstr = chr(64 + $col1) . chr(65 + $col0);
        }
        else {
            $colstr = chr(65+$colnum);
        }
        $result[$colstr . ($rownum+1)] = $value;
    }
}

print_r($result);

Output(我的样本数据):

Array
(
    [A1] => ABC
    [B1] => XYZ
    [B2] => ADW
    [U2] => XYZ
    [AA2] => AA2
    [AE2] => PQR
    [BI2] => WWW
    [ZZ2] => ZZZ
)

3v4l.org 上的演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM