чтение xlsx-файла с помощью php [закрыто]


Может ли кто-нибудь порекомендовать хорошую библиотеку для чтения xlsx-файлов с использованием php?

Я посмотрел на phpexcel, но из примеров кажется, что он поддерживает только написание?

Author: pnuts, 2010-07-15

2 answers

Я бы еще раз посмотрел на PHPExcel. В PHPExcel есть средства записи для Excel5 (xls), Excel2007 (xlsx), CSV, HTML и PDF; и средства чтения для Excel5 (xls), Excel2007 (xlsx), Excel 2003 XML, CSV, SYLK и Open Office Calc

Все совершенно ясно в документации

РЕДАКТИРОВАТЬ (цитата из руководства)

Существует 2 способа чтения файла в PHPExcel: с помощью автоматического разрешения типа файла или явно.

Автоматическое определение типа файла проверяет другой PHPExcel_Reader_IReader, распространяемый вместе с PHPExcel. Если один из них может загрузить указанное имя файла, файл загружается с помощью этого PHPExcel_Reader_IReader. Явный режим требует, чтобы вы указали, какой PHPExcel_Reader_IReader следует использовать.

Вы можете создать экземпляр PHPExcel_Reader_IReader с помощью phpexcel_iofactory в режиме автоматического разрешения типов файлов, используя следующий пример кода:

$objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx");

Обычно эта функция используется, когда вам нужно прочитать файлы, загруженные ваши пользователи, и вы не знаете, загружают ли они файлы xls или xlsx.

Если вам нужно установить некоторые свойства для считывателя (например, только для чтения данных, подробнее об этом позже), то вместо этого вы можете использовать этот вариант:

$objReader = PHPExcel_IOFactory::createReaderForFile("05featuredemo.xlsx");
$objReader->setReadDataOnly(true);
$objReader->load("05featuredemo.xlsx");

Вы можете создать экземпляр PHPExcel_Reader_IReader с помощью phpexcel_iofactory в явном режиме, используя следующий пример кода:

$objReader = PHPExcel_IOFactory::createReader("Excel2007");
$objPHPExcel = $objReader->load("05featuredemo.xlsx");

РЕДАКТИРОВАТЬ (Личные предпочтения)

Также стоит завернуть ваш загрузчик в попробуй/поймай

$fileName = '01simple.xlsx';
try {
    $objPHPExcel = PHPExcel_IOFactory::load($fileName);
} catch (Exception $e) {
    die("Error loading file: ".$e->getMessage()."<br />\n");
}
 11
Author: Mark Baker, 2010-07-15 08:22:29

Это зависит от того, что вы подразумеваете под словом "читать".

XML-файлы Office - это просто zip-файлы, содержащие один или несколько XML-документов. Любой старый синтаксический анализатор XML должен уметь читать их.

С другой стороны, выполнение чего-то полезного, интересного и продуктивного с данными может потребовать определенных усилий.

 1
Author: Charles, 2010-07-15 03:53:46