【问题标题】:PHP Excel Reader : get strikeout / strikethrough valuePHP Excel Reader:获取删除线/删除线值
【发布时间】:2014-06-19 21:27:17
【问题描述】:

我正在寻找方法来解析 Excel 工作表中单元格的删除线/删除线值,如果可能的话,使用 PHP 脚本。删除线或不包含简单文本值的单元格(没有公式或任何内容)。

我尝试过使用http://code.google.com/p/php-excel-reader/ 和其他一些脚本。但是我还没有找到任何解析这个特定值(删除线)的 PHP 脚本,我尝试将这个解析功能添加到 php-excel-reader,但没有成功。

我尝试添加以下内容:

function lineTrought($row,$col,$sheet=0) {
    return $this->fontProperty($row,$col,$sheet,'strikethrough');
}

并且还要在这部分解析代码中添加一些代码(用**表示):

            case SPREADSHEET_EXCEL_READER_TYPE_FONT:
                    $height = v($data,$pos+4);
                    $option = v($data,$pos+6);
                    $color = v($data,$pos+8);
                    $weight = v($data,$pos+10);
                    $under  = ord($data[$pos+14]);
                    **$strikethrough  = v($data,$pos+16);**
                    $font = "";
                    // Font name
                    $numchars = ord($data[$pos+18]);
                    if ((ord($data[$pos+19]) & 1) == 0){
                        $font = substr($data, $pos+20, $numchars);
                    } else {
                        $font = substr($data, $pos+20, $numchars*2);
                        $font =  $this->_encodeUTF16($font); 
                    }
                    $this->fontRecords[] = array(
                            'height' => $height / 20,
                            'italic' => !!($option & 2),
                            'color' => $color,
                            'under' => !($under==0),
                            'bold' => ($weight==700),
                            **'strikethrough'=>$strikethrough,**
                            'font' => $font,
                            'raw' => $this->dumpHexData($data, $pos+3, $length)
                            );
                    break;

但我找不到指示删除线值的正确数据。 v($data,$pos+16) 不正确,我尝试了很多其他的东西都没有成功。

如果无法使用 PHP 库,是否知道如何使用 Python 或 Perl 脚本解析 XLS,然后将数据切换到 PHP?

CPAN Perl 脚本中的 Spreadsheet::ParseExcel-0.55 似乎可以工作,但我的主要应用程序是 PHP,所以我需要将结果写入文件并用 PHP 或类似的东西解析回来。

【问题讨论】:

  • 删除线文本的外观如何?它被编码了吗?二进制?

标签: php excel parsing


【解决方案1】:

还可以查看:http://www.codeplex.com/PHPExcel

它说它可以读取 Excel 文件。我主要是用它来写作,所以我不知道在多大程度上支持阅读。

【讨论】:

  • 好像是一个很完整的库,我去试试。我不明白我怎么没有找到这个。我失败了。
【解决方案2】:

使用 PHPExcel(http://phpexcel.net,官方网址),您可以从单元格中读取样式值。对于删除线,它是这样的。

$cell->getStyle()->getFont()->getStrikethrough().

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多