Добрий час доби!
Як правильно виконати експорт з Excel в MySQL?
Варто dbForge Studio for MySQL. Все пробував через нього.
Пробував імпортувати як xls-файл - на сторінці вибору діапазону порожньо, натискаю "Далі" - вискочило повідомлення, що немає даних, або вони знаходяться за межами аркуша.
Через купу спроб вдалося через dbForge Studio for MySQL імпортувати XLS-файл, але японський все одно кракозябрами. При імпорті для таблиці і для рядків вказував UTF.
При цьому, щоб вдалося виконати імпорт, довелося прибрати майже всі рядки. Закономірності не зрозумів, але спочатку міг вставити тільки якщо в excel`e було 5 рядків, потім якщо 9, а потім - до 50 дійшов. Начебто все виконував однаково - відкрив вихідний файл, скопіював частину рядків (5, 10, 50), вставив в інший (вставляв з самого початку, заміщаючи вміст), зберігав і відправляв на імпорт. Кожен раз завантажувалося різну кількість рядків ( "завантажувалося" - це якщо під час імпорту не виникало помилок)
В даному випадку може бути і баг dbforge, але питання не в цьому, тому що наскільки зрозумів, мені все одно доведеться експортувати в CSV, а з цим теж проблеми.
Пробував зробити експорт з Excel в CSV, але MS Excel не визнає при експорті UTF, а він потрібен - є записи не тільки англійською або російською, а й іншими мовами.
Поставив Libre Office. Зробив експорт в CSV в ньому, вказав UTF - експортувалося. Спробував завантажити - всі мови нормально завантажилися, а японський - кракозябрами.
Якщо експорт даних з XLS в MySQL можна зробити не використовуючи CSV, то як?
Якщо робити через CSV, то дане питання можна кілька переформулювати:
Як (або точніше ніж) експортувати XLS в CSV так, щоб при імпорті в базу нормально відображалися різні мови? У мене, повторюся, виникла проблема тільки з японським. Російська, німецька, французька, хінді та ще деякі експортувалися в CSV і записалися в БД нормально.
На SO знаходив кілька схожих питань (про експорт з XLS в CSV в UTF), але одного цього мені виявилося мало - у мене відразу після експорту не відображався той самий японський.
Не знаю що було.
Вирішилося все наступним чином:
- зробив експорт в csv за допомогою Libre Office (японський не відображається на відміну від інших мов)
- залив цей файл на сервер, зробив імпорт безпосередньо в базу
- при імпорті вказав кодування UTF-8 (файл чомусь був в кодуванні ANSI, хоча при експорті було ясно сказано - експортувати в UTF-8, причому - всі мови, крім японського, відображалися нормально)
- перед отриманням даних з MySQL вказав, що хочу все отримувати в UTF-8
- дані отримані, всі мови відображаються, навіть японський
відповідь даний 14 Березня '13 о 13:02