How can i open xlsx file in php?

XLSXReader [available on GitHub] is based on SimpleXLSX [see answer by Sergey Shuchkin].

Convert dates from xlsx using XLSXReader::toUnixTimeStamp.

sample.xlsx

sample.php

require [__DIR__ . '/../xlsxreader/XLSXReader.php'];

// entire workbook
$xlsx = new XLSXReader['sample.xlsx'];
$sheetNames = $xlsx->getSheetNames[];

// loop through worksheets
foreach [$sheetNames as $sheetName] {
    $sheet = $xlsx->getSheet[$sheetName];

    // worksheet header
    echo['

' . htmlentities[$sheetName] . '

' . PHP_EOL]; $xlsx_data = $sheet->getData[]; $header_row_xlsx = array_shift[$xlsx_data]; // header row echo['' . PHP_EOL]; echo["\trow" . PHP_EOL]; for [$i = 0; $i < count[$header_row_xlsx]; $i++] { $xlsx_field_name = '' . $header_row_xlsx[$i]; echo["\t" . htmlentities["$xlsx_field_name"] . '' . PHP_EOL]; } echo['' . PHP_EOL]; // loop through data rows $row_number = 1; foreach [$xlsx_data as $row_xlsx] { // data row echo['' . PHP_EOL]; echo["\t' . PHP_EOL]; for [$i = 0; $i < count[$row_xlsx]; $i++] { $xlsx_field_name = '' . [$i < count[$header_row_xlsx] ? $header_row_xlsx[$i] : '']; if ["$xlsx_field_name" === "DoB"] { // date value $xlsx_field_value = DateTimeImmutable:: createFromFormat['U', XLSXReader::toUnixTimeStamp[$row_xlsx[$i]]] ->format['Y-m-d']; } else { // non-date value $xlsx_field_value = $row_xlsx[$i]; } echo["\t' . PHP_EOL]; } echo['' . PHP_EOL]; $row_number++; } echo["
" . htmlentities["$row_number"] . '" . htmlentities["$xlsx_field_value"] . '
" . PHP_EOL]; }

output

Sheet1

row Name Number DoB
1 David 7 1988-11-12
2 Walt 8 1972-01-19

XLSXReader.php

Chủ Đề