Преимущество анализа данных электронной таблицы Excel по сравнению с CSV? - PullRequest
2 голосов
/ 19 июня 2009

Я занес в таблицу данные в таблице Excel (размер файла, вероятно, никогда не будет больше, чем 1 МБ). Я хочу использовать PHP для анализа данных и вставки в базу данных MySQL.

Есть ли преимущество в сохранении файла в формате .xls / .xlsx и его анализе с использованием библиотеки синтаксического анализа PHP Excel? Если да, какие хорошие библиотеки использовать?

Очевидно, я могу сохранить .xls / .xlsx как CSV и обработать файл таким образом.

Спасибо!

Ответы [ 5 ]

4 голосов
/ 19 июня 2009

Если вы только после значений, я бы сохранить его как CSV. Это намного проще проанализировать программно, особенно если вы пытаетесь сделать это в окне, отличном от Windows.

При этом будет потеряна информация при экспорте в CSV. При этом будут сохраняться только значения ячеек, а не информация о форматировании, формулы и т. Д. Если вам нужно использовать эту информацию, вам лучше делать это прямо из Excel.

Вот библиотека PHP Excel Reading . Если вы решите читать файлы Excel напрямую, это может помочь вам начать работу.

1 голос
/ 21 июня 2009

когда вы предоставляете клиентам возможность загружать файлы Excel / CSV, вы должны учитывать, что

  1. CSV-файлы будут экспортировать только один лист
  2. Наличие многострочных ячеек усложнит синтаксический анализ CSV
  3. Вы не можете легко обнаружить поврежденные / неполные файлы CSV
  4. CSV-файлы не включают форматирование

Кроме того, импортировать CSV намного проще, чем импортировать XLS.

1 голос
/ 19 июня 2009

Если ваши файлы Excel содержат строго данные и не содержат формул, сценариев, макросов и т. Д., Я бы сказал, что разбор через Excel только увеличит накладные расходы на разработку и потенциально замедлит обработку. В этом случае, вероятно, было бы лучше конвертировать файлы в CSV.

Также учтите, что команда MySQL «LOAD DATA INFILE» может использоваться для импорта целых CSV-файлов в таблицу, что может потенциально осложнить вам дальнейшие задачи.

0 голосов
/ 20 июня 2009

В Office 2003 существует формат XML, называемый SpreadsheetML, который немного отличается от XML и Excel. Я рассмотрел использование этого формата для импорта / экспорта данных на веб-сайт, но формат оказался немного сложным. Внутренне этот формат превращает все ссылки в относительные ссылки. (Относительно текущего местоположения.) Хуже того, некоторые ячейки имеют индекс, поэтому вы можете увидеть строку только с двумя ячейками, но вторая ячейка может находиться на расстоянии 6 столбцов от первой ячейки. (В этом случае Index = 5.) ​​В основном, если вы хотите использовать формат Excel, у вас должен быть хороший способ рассчитать положение каждой ячейки и знать, как правильно переводить ссылки в ячейках. Если вас интересуют только данные, CSV будет намного, намного проще реализовать. В качестве промежуточного решения вы можете определить схему XML и добавить отображение XML в вашу электронную таблицу, чтобы экспортировать данные в файл XML. Это сложнее, чем CSV i9mport / export, но также немного более надежно. Но сами по себе форматы Excel или Excel XML ужасны для реализации. (Или просто хороший вызов, если вы настоящий эксперт по XML.)

0 голосов
/ 20 июня 2009

Помните, что если вы импортируете CSV-файл непосредственно в Mysql, у вас могут возникнуть проблемы с форматом даты (поскольку Mysql использует другой формат даты в Excel). Мне проще сначала изменить поля даты в Excel (для форматирования гггг-мм-дд) перед сохранением в виде файла CSV. Изменить: Хотя я сам не использовал его, другие рекомендовали Navicat как очень хороший инструмент для преобразования электронных таблиц Excel или доступа к данным в базы данных Mysql. Может быть стоит посмотреть.

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