0

I am a beginner, so do not swear. I use Postgresql, but it didn't work out. Got an error. I need to import an Excel file into a ready-made table. Spreadsheet excel consists of

Ruby code:

  def self.import_csv
  text = File.read("/home/dayanov-sa/Рабочий стол/копия инвест карты/ExportInventoryData.xlsx")
     csv = CSV.parse(text, :headers => true)
     csv.each do |row|
        row = row.to_hash.with_indifferent_access
        candidate = ImportPropertyObject.new(row)
        candidate.save
     end

I need to load all columns into the database

 id serial NOT NULL,
  ao_1_aoid character varying,
  ao_1_shortname character varying,
  ao_1_formalname character varying,
  ao_1_node_id integer,
  ao_2_aoid character varying,
  ao_2_shortname character varying,
  ao_2_formalname character varying,
  ao_2_node_id integer,
  ao_3_aoid character varying,
  ao_3_shortname character varying,
  ao_3_formalname character varying,
  ao_3_node_id integer,
  ao_4_aoid character varying,
  ao_4_shortname character varying,
  ao_4_formalname character varying,
  ao_4_node_id integer,
  ao_5_aoid character varying,
  ao_5_shortname character varying,
  ao_5_formalname character varying,
  ao_5_node_id integer,
  ao_village_council_aoid character varying,
  ao_village_council_shortname character varying,
  ao_village_council_formalname character varying,
  ao_village_council_node_id integer,
  village_council_guid character varying,
  locality_guid character varying,
  exam_card character varying,
  all_correct character varying,
  cadastre_number character varying,
  condition_number character varying,
  oks_kind character varying,
  endpoint_guid character varying,
  stead_number character varying,
  house_number character varying,
  build_number character varying,
  struc_number character varying,
  room_number character varying,
  level_number character varying,
  linked_exam_card_numbers character varying,
  permitted_usage character varying,
  purpose_use character varying,
  actual_use character varying,
  footage character varying,
  wall_material character varying,
  levels_count character varying,
  underground_levels character varying,
  manufactured_year character varying,
  overhaul_year character varying,
  infra_electricity character varying,
  infra_gas character varying,
  infra_water character varying,
  infra_heat character varying,
  infra_sewer character varying,
  land_type character varying,
  subject_of_law_type character varying,
  discrepancy_footage character varying,
  discrepancy_boundary character varying,
  discrepancy_use character varying,
  discrepancy_unautorized_actions character varying,
  discrepancy_wall_material character varying,
  discrepancy_levels_count character varying,
  discrepancy_level_mismatch character varying,
  discrepancy_living_type character varying,
  discrepancy_factal_cadastre_quartal character varying,
  duplicate_exam_card_number character varying,
  type_of_law character varying,
  subject_of_law character varying,
  basis_document character varying,
  basis_document_number character varying,
  basis_document_date character varying,
  foto_1_name character varying,
  foto_2_name character varying,
  cause_of_change character varying,
  spec_note_owner_resistance character varying,
  spec_note_invalid_exam_card character varying,
  spec_note_factal_absent character varying,
  spec_note_additional_notes character varying,
  correct_landmark_information_presence character varying,
  general_data_hash character varying,
  service_content json,
  update_date timestamp without time zone,
  actual_status integer,
  status_date timestamp without time zone,
  counted integer,
  type_property integer,
  founded_in_fias boolean DEFAULT false,
  founded_in_rosreestr boolean DEFAULT false,
  created_at timestamp without time zone NOT NULL,
  updated_at timestamp without time zone NOT NULL,
  fias_ao_guid character varying,
  file_path character varying,
  CONSTRAINT import_property_objects_pkey PRIMARY KEY (id)

one of the errors: 2.4.4 :015 > StatisticReportsGroup.import_csv

ArgumentError: invalid byte sequence in UTF-8

HackeXe
  • 3
  • 5
  • 3
    An XLSX file is not a CSV file. Use an XLSX library, not the CSV library. – Tom Lord Jun 13 '19 at 11:09
  • You'll want to use something like [oxcelix](https://github.com/gbiczo/oxcelix) to import excel files – Jay Dorsey Jun 13 '19 at 12:12
  • 1
    From excel, you should be able to export to a CSV file and then import into postgres using COPY (or \copy with psql). It's possible you are already doing something similar and the error you are getting is due to having the null character somewhere in your file. Make sure to strip out any null characters (chr(0)) in your data. – Jeremy Jun 13 '19 at 12:30
  • @Jeremy Yes, I have a csv file, but it gives an error when I import. How do I view chr (0) in csv? – HackeXe Jun 14 '19 at 07:46
  • I am not positive it's due to chr(0). Is there any more to the error message you received? If it is due to the null character, it's not printable, so you can't see it, but you can remove it: https://stackoverflow.com/a/2398400/895640 – Jeremy Jun 14 '19 at 12:12

0 Answers0