使用Ruby将mysql结果导出到文件

时间:2012-02-23 20:57:02

标签: mysql ruby watir export-to-excel export-to-csv

我想查询我的数据库并获取结果并将它们导出为.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 个答案:

答案 0 :(得分:6)

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一起使用。

答案 1 :(得分:2)

这个宝石可能会帮到你很多。您可以使用漂亮而灵活的DSL导出任何复杂查询。

https://github.com/stevenbarragan/julia_builder