Помогите импортировать файл Excel в MySQL с помощью phpMyAdmin - PullRequest
2 голосов
/ 12 августа 2011

Я загружаю файлы Excel (.xls), содержащие числовые значения, такие как 884.557 и 731.0547, в базу данных MySQL, используя встроенную функцию импорта phpMyAdmin.Однако у меня ужасные проблемы с округлением / усечением.По некоторым причинам некоторые значения, такие как 884.557 и 731.0547, изменяются на 99.99999 или 9.99999.Однако другие значения, такие как 127.0947, импортируются правильно.Кто-нибудь может помочь?Если возможно, я все же хотел бы использовать встроенную функцию импорта phpMyAdmin, потому что она полезна.

Ответы [ 2 ]

2 голосов
/ 02 мая 2013

Если вы знакомы с html и php, с помощью этого скрипта simplex excel library вы можете создать свой собственный импорт excel в mysql. Создание может занять несколько минут, но после создания вы можете использовать его на всю жизнь.

СОЗДАНИЕ ФОРМЫ HTML ДЛЯ ЗАГРУЗКИ EXCEL SHEET

ТОГДА СОЗДАЙТЕ PHP-СКРИПТ, КАК НИЖЕ

require 'simplexlsx.class.php';

if (isset($_FILES['Filedata'])) {

$file = $_FILES['Filedata']['tmp_name']; // UPLOADED EXCEL FILE

$xlsx = new SimpleXLSX($file);

list($cols, $rows) = $xlsx->dimension();

foreach( $xlsx->rows() as $k => $r) { // LOOP THROUGH EXCEL WORKSHEET

$q = "INSERT INTO TABLENAME(COL1, COL2) VALUE(";
      $q .=  "'".mysql_escape_string($r[0])."', "; // EXCEL DATA
      $q .=  "'".mysql_escape_string($r[1])."', "; // EXCEL DATA
      $q .= ")";

      $sql = mysql_query($q);

        } // IF ENDS HERE
        } // FOR EACH LOOP
}
0 голосов
/ 26 февраля 2012

Это то, что я обычно делаю:

  1. Сохранить файл Excel в формате CSV

  2. Я вручную создам таблицу базы данных, указав типы данных для каждого интересующего меня столбца.

  3. Я буду загружать файл csv в выбранную таблицу, игнорируя «имена столбцов», как я определил их на шаге 2. Десятичные дроби усекаются, потому что phpmyadmin имеет некоторый необъяснимый алгоритм для определения типа данных и выделенного размера в столбец. Чтобы предотвратить это, вы создаете таблицу, как указано выше на шаге 2.

Надеюсь, это поможет!

...