экспортировать результаты MySQL в файл, используя Ruby - PullRequest
4 голосов
/ 24 февраля 2012

Я бы хотел запросить мою БД, взять результаты и экспортировать их в .txt, .cvs или .xls

База данных mysql не размещена на моей локальной машине

вот мой код для доступа к БД и возврата результатов на экран:

 #!/usr/bin/ruby
 require 'mysql'
 require 'watir'
 require "win32ole"

 excel = WIN32OLE::new('excel.Application')
 workbook = excel.Workbooks.Add
 worksheet = workbook.Worksheets(1)

 mysql = Mysql.init()
 mysql.connect(host='hostname', user='username', passwd='pwd', db='DBname')

 results = mysql.query("Select * FROM table") 
 results.each{|row|; puts row;}
 mysql.close()

 worksheet.SaveAs("C:\\Scripts\\DB_Test\\Test.xlsx") 
 workbook.Close

Ответы [ 2 ]

6 голосов
/ 24 февраля 2012

CSV это просто.Я не уверен, что вы получаете из mysql.query, но убедитесь, что каждая строка является массивом с тем, что вы хотите поместить в строку CSV, а затем сделайте что-то вроде этого:

require 'csv'

CSV.generate do |csv|
  csv << ["headers","describing","the data"]
  mysql.query("SELECT * FROM table").each { |row| csv << row }
end

Поддержка CSV встандартная библиотека, поэтому не нужно никаких драгоценных камней.Обратите внимание, что стандартная библиотека изменилась между 1,8 и 1,9 - пример должен работать с 1,9.

2 голосов
/ 29 октября 2015

Этот драгоценный камень может вам очень помочь. Вы можете экспортировать любой сложный запрос с красивым и гибким DSL.

https://github.com/stevenbarragan/julia_builder

...