使用php中的电子表格excel阅读器从excel文件读取URL
我正在使用电子表格\u Excel\u Reader()读取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方法中添加了以下开关大小写
<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);
}