PHP импортирует Excel в базу данных (xls & xlsx)
Я попытался найти некоторые плагины для импорта файла Excel в базу данных MySQL, одним из которых является http://code.google.com/p/php–excel-reader/
Инструмент настолько мощный, что он отображает весь контент excel в html.
Однако, мне кажется, мне просто нужно прочитать файл Excel и извлечь содержимое, например, в массив, а затем написать инструкцию SQL для ввода в базу данных.
Будут ли хорошие коды и пакеты? Благодаря!
5 Solutions collect form web for “PHP импортирует Excel в базу данных (xls & xlsx)”
Это лучший плагин с соответствующей документацией и примерами
https://github.com/PHPOffice/PHPExcel
Плюс: вы можете попросить о помощи на своем форуме, и вы получите ответ в течение дня от самого автора, действительно впечатляющий.
Иногда мне нужно импортировать большие файлы xlsx в базу данных, поэтому я использую spreadsheet-reader
как она может читать файл за строку. Это очень экономичный способ импорта.
<?php // If you need to parse XLS files, include php-excel-reader require('php-excel-reader/excel_reader2.php'); require('SpreadsheetReader.php'); $Reader = new SpreadsheetReader('example.xlsx'); // insert every row just after reading it foreach ($Reader as $row) { $db->insert($row); } ?>
Если вы можете конвертировать .xls в .csv перед обработкой, вы можете использовать следующий запрос, чтобы импортировать csv в базу данных:
load data local infile 'FILE.CSV' into table TABLENAME fields terminated by ',' enclosed by '"' lines terminated by '\n' (FIELD1,FIELD2,FIELD3)
Если вы сохраните файл excel в виде CSV-файла, вы можете импортировать его в базу данных mysql с помощью таких инструментов, как PHPMyAdmin
Я не уверен, поможет ли это в вашей ситуации, но файл csv вручную или программно будет намного проще анализировать в базе данных, чем файл excel, о котором я думал.
EDIT: Я бы предложил посмотреть другие ответы, а не мои, поскольку ответ @diEcho кажется более уместным.
Я написал унаследованный класс:
<?php class ExcelReader extends Spreadsheet_Excel_Reader { function GetInArray($sheet=0) { $result = array(); for($row=1; $row<=$this->rowcount($sheet); $row++) { for($col=1;$col<=$this->colcount($sheet);$col++) { if(!$this->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint']) { $val = $this->val($row,$col,$sheet); $result[$row][$col] = $val; } } } return $result; } } ?>