Der vorherige Blog-Beitrag enthielt eine kurze Zusammenfassung der von PHPExcel exportierten Excel-Datei. Jetzt werde ich die folgende Zusammenfassung zum Lesen von Excel erstellen. (Wenn die Datenmenge nicht sehr groß ist, können Sie sie mit dieser Methode direkt über das Web lesen. Wenn die Datenmenge sehr groß ist, wird empfohlen, dass das Web nur die Upload-Funktion sowie das Lesen und Verarbeiten durchführt sollte im Hintergrund belassen werden. PHPExcel ist immer noch relativ zeitaufwendig, Speicher.)
Beispielcode:
//首先导入PHPExcel require_once 'PHPExcel.php'; $filePath = "test.xlsx"; //建立reader对象 $PHPReader = new PHPExcel_Reader_Excel2007(); if(!$PHPReader->canRead($filePath)){ $PHPReader = new PHPExcel_Reader_Excel5(); if(!$PHPReader->canRead($filePath)){ echo 'no Excel'; return ; } } //建立excel对象,此时你即可以通过excel对象读取文件,也可以通过它写入文件 $PHPExcel = $PHPReader->load($filePath); /**读取excel文件中的第一个工作表*/ $currentSheet = $PHPExcel->getSheet(0); /**取得最大的列号*/ $allColumn = $currentSheet->getHighestColumn(); /**取得一共有多少行*/ $allRow = $currentSheet->getHighestRow(); //循环读取每个单元格的内容。注意行从1开始,列从A开始 for($rowIndex=1;$rowIndex<=$allRow;$rowIndex++){ for($colIndex='A';$colIndex<=$allColumn;$colIndex++){ $addr = $colIndex.$rowIndex; $cell = $currentSheet->getCell($addr)->getValue(); if($cell instanceof PHPExcel_RichText) //富文本转换字符串 $cell = $cell->__toString(); echo $cell; } }
Was hier erklärt werden muss die „Rich-Text-Konvertierungszeichenfolge“ im obigen Kommentar.
Wenn PHPExcel eine EXCEl-Datei liest und der Inhalt in der Zelle zwei Schriftarten hat, liest es ein Rich-Text-Objekt:
Beispiel: Es gibt Inhalt in der Zelle: „Test 1“ , die „Test“-Schriftart in der ersten Hälfte ist Song Dynasty und die „1“-Schriftart in der zweiten Hälfte ist Calibri. Verwenden Sie zu diesem Zeitpunkt
$cell = $sheet->getCell($addr )-> getValue();
Den Wert der Zelle abrufen. Und drucken Sie:
PHPExcel_RichText Object( [_richTextElements:private] => Array ( [0] => PHPExcel_RichText_TextElement Object ([_text:private] => 测试) [1] => PHPExcel_RichText_Run Object ( [_font:private] => PHPExcel_Style_Font Object ( [_name:private] => Calibri [_size:private] => 11 [_bold:private] => [_italic:private] => [_superScript:private] => [_subScript:private] => [_underline:private] => none [_strikethrough:private] => [_color:private] => PHPExcel_Style_Color Object ( [_argb:private] => FF000000 [_isSupervisor:private] => [_parent:private] => [_parentPropertyName:private] => ) [_parentPropertyName:private] => [_isSupervisor:private] => [_parent:private] => [colorIndex] => 8 ) [_text:private] => 1 ) ) )
Sie sehen, dass der Textinhalt einer solchen Zelle nicht direkt gelesen werden kann. (Hinweis: Der Rich-Text hier ist meine eigene Übersetzung, ich weiß nicht, ob er korrekt ist).
Zusätzlich sind die Funktionen zum Lesen von Zellen:
//Spalten beginnen bei 0, Zeilen beginnen bei 1
$currentSheet ->getCellByColumnAndRow($colIndex, $ rowIndex)->getValue();