38 lines
1.3 KiB
Plaintext
38 lines
1.3 KiB
Plaintext
# encoding: utf-8
|
|
|
|
wb = xlsx_package.workbook
|
|
wb.add_worksheet(name: "cancer_tool") do |sheet|
|
|
if !@results[0].nil?
|
|
row = []
|
|
title = sheet.styles.add_style(:bg_color => "FFFF00",:border=>{ :style => :thin, :color => "666666" },:alignment=>{ :horizontal => :center,:vertical => :center ,:wrap_text => true})
|
|
column = sheet.styles.add_style(:alignment=>{ :horizontal => :center,:vertical => :center ,:wrap_text => true},:border=>{ :style => :thin, :color => "666666" })
|
|
row << ((I18n.locale=="en") ? 'submit time' : '提交時間')
|
|
@fields = @results.first.names.keys
|
|
@fields.each do |field_name|
|
|
row << @results.first.names[field_name][I18n.locale.to_s].split('<br/>')[0]
|
|
end
|
|
#export data start
|
|
export_data_rows = []
|
|
@results.each do |result|
|
|
temp_row = []
|
|
temp_row << result.created_at.to_s
|
|
result.result.each do |key,value|
|
|
if key != "locale"
|
|
if (result.values[key][I18n.locale.to_s].length == 0 rescue true)
|
|
temp_row << value
|
|
else
|
|
v = result.values[key][I18n.locale.to_s][value.to_i-1] rescue nil
|
|
temp_row << (v.nil? ? value : v)
|
|
end
|
|
end
|
|
end
|
|
export_data_rows << temp_row
|
|
end
|
|
|
|
#export data end
|
|
sheet.add_row row , :style=> title,:widths => row.map{|cell| (cell.length* 11/ 2).round}
|
|
export_data_rows.each do |infos_row|
|
|
sheet.add_row infos_row , :style=> column
|
|
end
|
|
end
|
|
end |