Назад | Перейти на главную страницу

* unix: утилита для экспорта результата запроса mysql в Excel (xls)

Есть ли консольная утилита, которая может экспортировать результат запроса mysql sql в файл Excel (xls)?

Ты можешь использовать mysqldump для вывода CSV, который понимает Excel.

mysqldump -u<user> -p --tab=<path> --fields-enclosed-by=\" --fields-terminated-by=, <database>

Однако есть некоторые предостережения по памяти:

  • Он будет использовать OUTFILE поэтому клиент должен находиться на том же компьютере, что и сервер.
  • Пользователь, который mysqld работает, поскольку потребуются разрешения на запись в выходной путь.
  • Вы можете захотеть повторноchown выходные файлы.
  • Вам нужно будет переименовать выходные файлы из .txt к .csv.
  • Он выведет .sql файлы тоже. Вы можете их удалить.

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

Вы можете использовать этот синтаксис:

SELECT order_id,product_name,qty
FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

Он создаст CSV-файл с результатом вашего запроса, который можно будет импортировать в Excel.

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

Вся идея состоит в том, чтобы смонтировать (да, смонтировать) вашу базу данных как файловую систему, а затем с ее помощью управлять вашими данными. Разработчик особо отметил, что можно будет использовать подключенную базу данных MySQL, полностью читаемую и записываемую, через Excel.

Хотя может быть и чересчур. Вам следует изучить возможность экспорта в CSV (легко скрипт) и импорта в Excel.