본문 바로가기

Archived(Programming)/Ruby on Rails(기초)

RubyOnRails Excel file 파싱하기(xlsx 파일)


RubyOnRails Excel file 파싱하기(xlsx 파일)


Rails에는 다양한 Excel File Parsing 방법이 존재한다.

참고 : https://stackoverflow.com/questions/3321011/parsing-xls-and-xlsx-ms-excel-files-with-ruby


그 중에서도 simple_xlsx_reader gem을 사용해서 하는 방법을 사용했다.


Gemfile에

gem 'simple_xlsx_reader' 를 추가해주고

$ bundle 을 통해 gem을 설치한다


그리고 특정 컨트롤러에서 다음의 코드를 통해 Parsing을 처리할 수 있다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 임의 controller
def school
    require 'rubygems'
    require 'pp'
    require 'simple_xlsx_reader'
    
    # Excel 파일 읽기
    workbook = SimpleXlsxReader.open './seoul_schoolZone.xlsx'
    
    # sheet 읽기
    worksheets = workbook.sheets
    
    # 반복문
    worksheets.each do |worksheet|
      worksheet.rows.each do |row|
        # 새 data 만들기
        @schoolZone = SchoolZone.new
    
        row_cells = row
        @schoolZone.spotname = row_cells[1# spotname
        @schoolZone.x_crd = row_cells[5].to_f # x_crd
        @schoolZone.y_crd = row_cells[4].to_f # y_crd
        @schoolZone.save
      end
    end
 end
cs


위의 row_cells에서 row값을 받는 순간 해당 row_cells는 string 배열로 들어오고 여기서 필요한 부분만

Column 위치에 맞는 Index값을 줘서 text를 추출할 수 있다