Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php中的电子表格excel阅读器从excel文件读取URL_Php_Excel - Fatal编程技术网

使用php中的电子表格excel阅读器从excel文件读取URL

使用php中的电子表格excel阅读器从excel文件读取URL,php,excel,Php,Excel,我正在使用电子表格\u Excel\u Reader()读取Excel文件 我想在下面的表格数据中读取url <a href="link">text</a> 请在这方面帮助我最后,我通过如下更改reader.php文件获得了解决方案 $leadCommentLInk=$worksheet->getCellByColumnAndRow(7, 2)->getHyperlink()->getUrl(); 在_parsesheet方法中添加了以下开关大小写

我正在使用电子表格\u Excel\u Reader()读取Excel文件

我想在下面的表格数据中读取url

<a href="link">text</a>

请在这方面帮助我

最后,我通过如下更改reader.php文件获得了解决方案

$leadCommentLInk=$worksheet->getCellByColumnAndRow(7, 2)->getHyperlink()->getUrl();
在_parsesheet方法中添加了以下开关大小写

case SPREADSHEET_EXCEL_READER_TYPE_HYPER:
                //  Only handle hyperlinks to a URL
                $row    = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
                $row2   = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
                $column = ord($this->data[$spos+4]) | ord($this->data[$spos+5])<<8;
                $column2 = ord($this->data[$spos+6]) | ord($this->data[$spos+7])<<8;
                $linkdata = Array();
                $flags = ord($this->data[$spos + 28]);
                $udesc = "";
                $ulink = "";
                $uloc = 32;
                $linkdata['flags'] = $flags;
                if (($flags & 1) > 0 ) {   // is a type we understand
                    //  is there a description ?
                    if (($flags & 0x14) == 0x14 ) {   // has a description
                        $uloc += 4;
                        $descLen = ord($this->data[$spos + 32]) | ord($this->data[$spos + 33]) << 8;
                        $udesc = substr($this->data, $spos + $uloc, $descLen * 2);
                        $uloc += 2 * $descLen;
                    }
                    $ulink = $this->read16bitstring($this->data, $spos + $uloc + 20);
                    if ($udesc == "") {
                        $udesc = $ulink;
                    }
                }
                $linkdata['desc'] = $udesc;
                $linkdata['link'] = $this->_encodeUTF16($ulink);
                for ($r=$row; $r<=$row2; $r++) { 
                    for ($c=$column; $c<=$column2; $c++) {
                        $this->sheets[$this->sn]['cellsInfo'][$r+1][$c+1]['hyperlink'] = $linkdata;
                    }
                }
                break;
和方法

function read16bitstring($data, $start) {
    $len = 0;
    while (ord($data[$start + $len]) + ord($data[$start + $len + 1]) > 0) $len++;
    return substr($data, $start, $len);
}

或者我们可以只使用一个文件

您不能将excel转换为CSV吗?若您需要,解析它并将其添加到数据库中非常简单
function read16bitstring($data, $start) {
    $len = 0;
    while (ord($data[$start + $len]) + ord($data[$start + $len + 1]) > 0) $len++;
    return substr($data, $start, $len);
}