[英]PHP Excel Reader : get strikeout / strikethrough value
我正在尋找一種方法來解析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或類似的方法將其解析回去。
還要簽出: http : //www.codeplex.com/PHPExcel
它說它可以讀取Excel文件。 我主要將其用於寫作,所以我不知道在多大程度上支持閱讀。
使用PHPExcel( http://phpexcel.net ,官方URL),您可以從單元格中讀取樣式值。 對於刪除線,它是這樣的。
$cell->getStyle()->getFont()->getStrikethrough().
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.