4

DB にクエリを実行し、結果を取得して、.txt、.cvs、または .xls のいずれかにエクスポートしたいと考えています。

mysql データベースがローカル マシンでホストされていません

DBにアクセスして結果を画面に返すコードは次のとおりです。

 #!/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
4

2 に答える 2

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サポートは標準ライブラリに含まれているため、gemは必要ありません。標準ライブラリが1.8から1.9の間で変更されたことに注意してください。この例は1.9で動作するはずです。

于 2012-02-23T21:30:07.250 に答える