Repairing export failure
Added support for handling characters not allowed in MS Excel
This commit is contained in:
parent
8addfd0631
commit
75b3536b1e
|
|
@ -2,7 +2,12 @@
|
||||||
|
|
||||||
wb = xlsx_package.workbook
|
wb = xlsx_package.workbook
|
||||||
|
|
||||||
wb.add_worksheet(name: (@seminar.title.to_s[0..27]+'...')) do |sheet|
|
illegal_chars = /[:\\\/\[\]\*\?]/
|
||||||
|
|
||||||
|
sanitized_title = @seminar.title.to_s.gsub(illegal_chars, ' ').strip
|
||||||
|
sheet_name = (sanitized_title[0..27] + '...').gsub(/\.{4,}/, '...')
|
||||||
|
|
||||||
|
wb.add_worksheet(name: sheet_name) do |sheet|
|
||||||
|
|
||||||
row = [t('seminar_signup.signup_time')]
|
row = [t('seminar_signup.signup_time')]
|
||||||
|
|
||||||
|
|
@ -26,7 +31,7 @@ wb.add_worksheet(name: (@seminar.title.to_s[0..27]+'...')) do |sheet|
|
||||||
|
|
||||||
seminar_signup_fields = @seminar.seminar_signup_fields.where(:disabled=>false).asc(:sort_number, :_id).to_a
|
seminar_signup_fields = @seminar.seminar_signup_fields.where(:disabled=>false).asc(:sort_number, :_id).to_a
|
||||||
|
|
||||||
seminar_signup_fields.each do |rf|
|
seminar_signup_fields.each do |rf|
|
||||||
if rf.can_muti_lang_input?
|
if rf.can_muti_lang_input?
|
||||||
@site_in_use_locales.each do |l|
|
@site_in_use_locales.each do |l|
|
||||||
row << rf.title + " (#{t(l.to_s)})"
|
row << rf.title + " (#{t(l.to_s)})"
|
||||||
|
|
@ -35,9 +40,10 @@ wb.add_worksheet(name: (@seminar.title.to_s[0..27]+'...')) do |sheet|
|
||||||
row << rf.title
|
row << rf.title
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
highlight_style = wb.styles.add_style(
|
highlight_style = wb.styles.add_style(
|
||||||
:bg_color => 'ffeb3b',
|
:bg_color => 'ffeb3b',
|
||||||
:b => true,
|
:b => true,
|
||||||
:border => { :style => :thick, :color => "000000", :edges => [:top, :left, :bottom, :right] },
|
:border => { :style => :thick, :color => "000000", :edges => [:top, :left, :bottom, :right] },
|
||||||
:alignment => {:horizontal => :center, :vertical => :center, :wrap_text => true}
|
:alignment => {:horizontal => :center, :vertical => :center, :wrap_text => true}
|
||||||
)
|
)
|
||||||
|
|
@ -52,13 +58,13 @@ wb.add_worksheet(name: (@seminar.title.to_s[0..27]+'...')) do |sheet|
|
||||||
row2 << "#{signup.display_serial_number}"
|
row2 << "#{signup.display_serial_number}"
|
||||||
row2 << "#{signup[:name]} "
|
row2 << "#{signup[:name]} "
|
||||||
row2 << "#{signup.unit} "
|
row2 << "#{signup.unit} "
|
||||||
row2 << "#{signup[:tel]} "
|
row2 << "#{signup.tel} "
|
||||||
row2 << "#{signup[:phone]} "
|
row2 << "#{signup[:phone]} "
|
||||||
row2 << "#{signup[:fax]} "
|
row2 << "#{signup[:fax]} "
|
||||||
row2 << "#{signup.address} "
|
row2 << "#{signup.address} "
|
||||||
row2 << "#{signup[:email]} "
|
row2 << "#{signup[:email]} "
|
||||||
row2 << "#{signup.note} "
|
row2 << "#{signup.note} "
|
||||||
seminar_signup_fields.each do |rf|
|
seminar_signup_fields.each do |rf|
|
||||||
if rf.can_muti_lang_input?
|
if rf.can_muti_lang_input?
|
||||||
@site_in_use_locales.each do |l|
|
@site_in_use_locales.each do |l|
|
||||||
row2 << (@seminar.get_attribute_value(rf,signup.id).get_value_by_locale(l) rescue '')
|
row2 << (@seminar.get_attribute_value(rf,signup.id).get_value_by_locale(l) rescue '')
|
||||||
|
|
@ -76,5 +82,4 @@ wb.add_worksheet(name: (@seminar.title.to_s[0..27]+'...')) do |sheet|
|
||||||
sheet.add_row row2 , :types => types, :style => styles
|
sheet.add_row row2 , :types => types, :style => styles
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
Loading…
Reference in New Issue