# encoding: utf-8 wb = xlsx_package.workbook wb.add_worksheet(name: "Member") do |sheet| row = [ "user_id", "password" ] row2 = ["#{t("users.user_id")}(#{t("users.user_id_note")})", "#{t("users.new_password")}(#{t("users.new_password_note")})"] row3 = ["text", "text"] @site_in_use_locales.each_with_index do |locale, i| row << "first_name(#{locale})" row2 << "#{t("users.first_name")}(#{I18n.t(locale)})" row3 << "text" end @site_in_use_locales.each_with_index do |locale, i| row << "last_name(#{locale})" row2 << "#{t("users.last_name")}(#{I18n.t(locale)})" row3 << "text" end row << "email" row2 << "#{t('users.email')}" row3 << "text" row << "sid" row2 << "#{t('users.sid')}" row3 << "text" row << "office_tel" row2 << "#{t('users.office_tel')}" row3 << "text" row << "sex" row2 << "#{t('users.sex')}(male, female, unknown)" row3 << "radio" row << "birthday" row2 << "#{t('users.birthday')}(yyyy/MM/dd)" row3 << "date" @site_in_use_locales.each_with_index do |locale, i| row << "address(#{locale})" row2 << "#{t("users.address")}(#{I18n.t(locale)})" row3 << "text_area" end @site_in_use_locales.each_with_index do |locale, i| row << "autobiography(#{locale})" row2 << "#{t("users.autobiography")}(#{I18n.t(locale)})" row3 << "text_area" end @field_type = {'text_field' => 'typeA', 'select' => 'typeB', 'date' => 'typeC', 'text_area' => 'typeD', 'radio_button' => 'typeE', 'checkbox' => 'typeE', 'address' => ''} @date_type = {'format1' => 'yyyy/MM/dd hh:mm', 'format2' => 'yyyy/MM/dd', 'format3' => 'yyyy/MM', 'format4' => 'yyyy'} @infos = MemberInfo.all @infos.each do |info| info.member_profile_fields.each do |member_profile_field| if member_profile_field.markup == 'text_field' or member_profile_field.markup == 'text_area' if member_profile_field[@field_type[member_profile_field.markup]]['cross_lang'] == 'true' row << "#{info.key}-#{member_profile_field.key}" row2 << "#{info.title}-#{member_profile_field.title}" row3 << member_profile_field.markup else @site_in_use_locales.each_with_index do |locale, i| row << "#{info.key}-#{member_profile_field.key}(#{locale})" row2 << "#{info.title}-#{member_profile_field.title}(#{I18n.t(locale)})" row3 << member_profile_field.markup end end elsif member_profile_field.markup == 'date' row << "#{info.key}-#{member_profile_field.key}" row2 << "#{info.title}-#{member_profile_field.title}(#{@date_type[member_profile_field['typeC']['format']]})" row3 << member_profile_field.markup elsif member_profile_field.markup == 'select' or member_profile_field.markup == 'radio_button' or member_profile_field.markup == 'checkbox' @option_list = member_profile_field[@field_type[member_profile_field.markup]]['option_list'] if !@option_list.blank? @opdata = @option_list.collect{|p| "#{p[0]}=>#{p[1][I18n.locale.to_s]}"} end row << "#{info.key}-#{member_profile_field.key}" row2 << "#{info.title}-#{member_profile_field.title}(#{@opdata.join(',')})" elsif member_profile_field.markup == 'address' @site_in_use_locales.each_with_index do |locale, i| row << "#{info.key}-#{member_profile_field.key}(#{locale})" row2 << "#{info.title}-#{member_profile_field.title}(#{I18n.t(locale)})" row3 << member_profile_field.markup end else row << "#{info.key}-#{member_profile_field.key}" row2 << "#{info.title}-#{member_profile_field.title}" row3 << member_profile_field.markup end end end @roles = Role.any_in(:key => @member_roles) @roles.each do |role| role_statuses = RoleStatus.where(role_id: role.id, :disable=> false).asc(:_id) if !role_statuses.blank? @statusdata = role_statuses.collect{|a,i| "#{a.key}=>#{a.title}"} row << "#{role.key}-status" row2 << "#{role.title}-#{t(:status)}(#{@statusdata.join(',')})" row3 << "checkbox" end role.attribute_fields.asc(:created_at).each do |attribute_field| if attribute_field.markup == 'text_field' or attribute_field.markup == 'text_area' if attribute_field[@field_type[attribute_field.markup]]['cross_lang'] == 'true' row << "#{role.key}-#{attribute_field.key}" row2 << "#{role.title}-#{attribute_field.title}" row3 << attribute_field.markup else @site_in_use_locales.each_with_index do |locale, i| row << "#{role.key}-#{attribute_field.key}(#{locale})" row2 << "#{role.title}-#{attribute_field.title}(#{I18n.t(locale)})" row3 << attribute_field.markup end end elsif attribute_field.markup == 'date' row << "#{role.key}-#{attribute_field.key}" row2 << "#{role.title}-#{attribute_field.title}(#{@date_type[attribute_field['typeC']['format']]})" row3 << attribute_field.markup elsif attribute_field.markup == 'select' or attribute_field.markup == 'radio_button' or attribute_field.markup == 'checkbox' @option_list = attribute_field[@field_type[attribute_field.markup]]['option_list'] if !@option_list.blank? @opdata = @option_list.collect{|p| "#{p[0]}=>#{p[1][I18n.locale.to_s]}"} end row << "#{role.key}-#{attribute_field.key}" row2 << "#{role.title}-#{attribute_field.title}(#{@opdata.join(',')})" row3 << attribute_field.markup elsif attribute_field.markup == 'address' @site_in_use_locales.each_with_index do |locale, i| row << "#{role.key}-#{attribute_field.key}(#{locale})" row2 << "#{role.title}-#{attribute_field.title}(#{I18n.t(locale)})" row3 << attribute_field.markup end else row << "#{role.key}-#{attribute_field.key}" row2 << "#{role.title}-#{attribute_field.title}" row3 << attribute_field.markup end end end sheet.add_row row sheet.add_row row3 sheet.add_row row2 end