Heim > Backend-Entwicklung > PHP-Tutorial > So lesen Sie den Inhalt der Tabelle mit PHPExcel

So lesen Sie den Inhalt der Tabelle mit PHPExcel

不言
Freigeben: 2023-04-03 10:04:02
Original
3661 Leute haben es durchsucht

Wie lese ich den Inhalt der Tabelle mit PHPExcel? Der folgende Artikel gibt Ihnen ohne weiteres eine detaillierte Einführung in die Methode zum Lesen des Tabelleninhalts in PHPExcel.

Führen Sie zuerst die Klasse IOFactory.php ein

require_once '../PHPExcel/IOFactory.php';
$filePath = "test.xlsx";  // 测试文件
Nach dem Login kopieren

Laden Sie die Testdatei

  1. $inputFileType = PHPExcel_IOFactory::identify( $filePath ) Bestimmen Sie den Dateityp

  2. $objReader = PHPExcel_IOFactory::createReader($inputFileType); Instanziieren Sie das Typobjekt

  3. $objPHPExcel = $objReader- >load($filePath); Datei laden

Das Folgende bestimmt hauptsächlich die Excel2007- und Excel5-Typen, nämlich xlsx/xlsm/xltx/xltm- und xls/xlt-Formatdateien

try {
    $inputFileType = PHPExcel_IOFactory::identify($filePath);
    if ($inputFileType !== "Excel5" && $inputFileType !== "Excel2007" ) {
        unlink($filePath) && str_alert(-1,"请确保导入的文件格式正确!");
    }
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($filePath);
} catch(Exception $e) {
    unlink($filePath) && str_alert(-1,'加载文件发生错误:”'.pathinfo($filePath,PATHINFO_BASENAME).'”: '.$e->getMessage());
    }
Nach dem Login kopieren

Rufen Sie das aktuelle Arbeitsblatt ab

$sheet = $objPHPExcel->getSheet(0);
//或者
$sheet = $objPHPExcel->getActiveSheet();
Nach dem Login kopieren

Rufen Sie die Anzahl der Zeilen und Spalten des Arbeitsblatts ab

$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
Nach dem Login kopieren

Hinweis: Manchmal werden Sie feststellen, dass Ihre Tabelle offensichtlich nur 5 Zeilen Inhalt hat , aber Sie erhalten „$highestRow“ aus 7, 8 oder mehr Zeilen. Dies kann daran liegen, dass Sie beim Bedienen Ihres Formulars versehentlich auf andere Zeilen geklickt haben. Obwohl der Inhalt nicht ausgefüllt ist, kann getHighestRow auch die Zeilennummer identifizieren Denken Sie, um die Anzahl der Zeilen mit Inhalt zu erhalten, sollten Sie getHighestDataRow und getHighestDataColumn verwenden
Der Quellcodekommentar führt die Zeichenfolge „Höchste Zeilennummer, die Daten enthält“ ein, dh die höchste Zeilennummer der Zeichenfolge, die Daten enthält.

Der spezifische Inhalt der Zelle

Tabellenzellen vom Typ xlsx werden durch xy-Achsenkoordinaten erhalten,

kann den Inhalt der entsprechenden Position durch ähnliches erhalten

 $sheet->getCell("A1")->getValue();
 $sheet->getCell("B2")->getValue();
Nach dem Login kopieren
,

wenn Sie keine Buchstaben verwenden möchten Zum Durchlaufen und Erhalten können Sie die numerische Indexmethode verwenden

  $sheet->getCellByColumnAndRow(0,1);
  $sheet->getCellByColumnAndRow(1,2);
Nach dem Login kopieren
Beachten Sie, dass der erste Parameter in den Koordinaten bei 0 beginnt, 0 steht für A und 1 steht für B ... und der zweite Parameter beginnt bei 1.

Im Folgenden wird die Tabelle durchlaufen, um den gesamten Zellinhalt zu erhalten:

$dataSet=array();
for ($column = "A"; $column <= $highestColumn; $column++) {//列数是以A列开始
    for ($row = 4; $row <= $highestRow; $row++) { //行数是以第4行开始
        $cell = $sheet->getCell($column . $row)->getValue();
        if($cell instanceof PHPExcel_RichText) { //富文本转换字符串
            $cell = $cell->__toString();
        }
        $dataSet[$row][] = $cell;
    }
}
Nach dem Login kopieren
Unter anderem besteht die Rich-Text-Konvertierungszeichenfolge darin, die $cell-Instanz von PHPExcel_RichText zu verwenden Um festzustellen, ob es sich um Rich Text handelt, wird festgestellt, dass, wenn die Zeichenfolge in Ihrer Zelle zwei enthält, die obige Schriftart automatisch auf Rich Text eingestellt wird. Zu diesem Zeitpunkt ist eine Konvertierung von __toString() erforderlich 🎜> um festzustellen, ob sich die zusammengeführte Zelle in der oberen linken Ecke befindet

Wenn wir alle Zellen durchlaufen, stellen wir fest, dass einige zusammengeführte Zellen nur Inhalt an der oberen linken Koordinate haben und die anderen null sind

Zum Beispiel werden A4 und A5 in einer Zelle zusammengeführt. getCell("A4") hat normalen Inhalt, aber getCell("A5") ist null.

isMergeRangeValueCell kann verwendet werden, um zu bestimmen, ob eine bestimmte Zelle die obere ist linke Ecke

$sheet->getCell('A' . $row)->isMergeRangeValueCell()
Nach dem Login kopieren

Wenn $row 4 ist, wird true zurückgegeben, und wenn $row 5 ist, wird false zurückgegeben
Konvertierungszeit

Um den Inhalt im Zeitformat zu erhalten Die Tabelle PHPExcel_Shared_Date::ExcelToPHP() ist erforderlich, um sie in ein Zeitformat zu konvertieren, das PHP erkennen kann

date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($sometime);
Nach dem Login kopieren

Verwandte Empfehlungen:

Beispiel für das Lesen der Excel-Tabellenzeit durch PHPExcel

                                                                                             

Das obige ist der detaillierte Inhalt vonSo lesen Sie den Inhalt der Tabelle mit PHPExcel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage