Skip to content

Instantly share code, notes, and snippets.

@wpeterson
Created August 26, 2010 15:52
Show Gist options
  • Save wpeterson/551662 to your computer and use it in GitHub Desktop.
Save wpeterson/551662 to your computer and use it in GitHub Desktop.
start_date = 5.years.ago.to_date
end_date = Date.today
manufacturer = Manufacturer.find_by_name! 'UCB Inc.'
search_opts = {'start_date' => start_date, 'end_date' => end_date, 'manufacturer' => manufacturer}
puts "Line Listing for #{search_opts.inspect}..."
search = Search.new(search_opts)
events = DrugSafety::Event.for_line_listing_report(search)
puts "Found #{events.size} events."
base_filename = "PLM Drug Safety Report for #{manufacturer.name} #{search.start_date}-#{search.end_date} (generated #{Date.today.strftime('%D')})".gsub('/', '-')
file_name = "#{Rails.root}/tmp/" + "#{base_filename}.xls"
# Generate XLS
book = ::Spreadsheet::Workbook.new
sheet = book.create_worksheet(:name => 'PLM Drug Safety')
sheet.row(0).concat ::DrugSafety::Event.column_code_headers
sheet.row(1).concat ::DrugSafety::Event.column_headers
puts "Generating report..."
events.each { |event| sheet.row(sheet.last_row_index+1).concat(event.xls_row.map(&:to_s)) }
book.write(file_name)
# Stream XLS data back
puts "Wrote: #{file_name}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment