2

PHPexcelでxlsからスタイルを読み取ることができません。私は解決策をたくさん探していますが、どこでも書き込みxlsの解決策を書いていますが、私はそれを読むのが好きです。私は特に取り消し線が好きですが、これも他のスタイル情報も読み取ることができません。私のコードは次のとおりです。これはすべてのデータを正しく読み取りますが、それ以上は読み取りません。必ずxlsでテキストのスタイルを設定してください。

require_once 'PHPExcel.php';
$filepath = "path/to/your/xls/file.xls";
$inputFileType = PHPExcel_IOFactory::identify($filepath);

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($filepath);

$total_sheets = $objPHPExcel->getSheetCount();
$allSheetName = $objPHPExcel->getSheetNames(); 
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0) ;
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);

$headingsArray = $objWorksheet->rangeToArray('A1:' . $highestColumn . '1', null, true, true, true);
$headingsArray = $headingsArray[1];

print_r( $objWorksheet->toArray() );

誰かアイデアがありますか?

どうも

4

1 に答える 1

0

PHPExcelは、xlsファイルからスタイルを完全に読み取ることができます。ここのコードには、スタイルが読み取られたことを確認するテストが表示されていないため、実際にセルからスタイルの詳細を取得しようとしましたか?

$objWorksheet->toArray()

セルからコンテンツを単純なPHPスカラー値として読み取ります。

セルのスタイルを決定するには、そのセルのスタイルの詳細を読む必要があります。

例えば

$cellHasStrikeThrough = $objPHPExcel->getActiveSheet()->getStyle('B2')
    ->getFont()->getStrikethrough();

APIドキュメントには、色、塗りつぶし、フォント、境界線などのスタイル情報を読み取るためのすべての詳細が表示されます

編集

セルの包含は、コンテンツのさまざまな部分がさまざまなスタイルを持つリッチテキストである場合もあります。を使用してセルからリッチテキスト値を取得する場合

$objPHPExcel->getActiveSheet()->getCellValue('B2');

リッチテキストオブジェクトが返されます。次に、リッチテキストオブジェクトの各ブロック(または実行)を反復処理して、そのブロックのスタイルをチェックすることができます。

于 2012-10-19T20:32:00.267 に答える