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

使用Ruby将mysql结果导出到文件,mysql,ruby,watir,export-to-excel,export-to-csv,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.Work

我想查询我的数据库并将结果导出到.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

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”
CSV.generate do | CSV|

csv这个宝石可能会对你有很大帮助。您可以使用漂亮灵活的DSL导出任何复杂的查询


谢谢。。。我必须安装gem fastercsv,并将CSV.generate更改为CSV.open('path to CSV','wb')do | CSV |,之后工作正常。