2010-01-20 3 views
1

저는 http://spreadsheet.rubyforge.org을 사용하여 스프레드 시트를 생성하고 있습니다. 문제가 있습니다. 기존 통합 문서를 열고 데이터를 추가하고 있습니다.루비 스프레드 젬 어떻게 숫자를 정렬 할 수 있습니까?

나는 어느 정도 작업 서식, 적어도 숫자로이 데이터를보고있다 엑셀 숫자를 얻기 위해 manged했던,하지만 한 (매우 해제 엑셀 등) 중심 :(

으로 정렬 수를하고자하는 클라이언트

  • 스프레드 시트는 현재 포맷 수정하지 않는 사람이 도울 수 있지만, 지금까지 가져온

    nfmt = Spreadsheet::Format.new :number_format => '0.00' 
    row = sheet.row(1) 
    row[0] = "Result" 
    row[1] = 45.55 
    row.set_format 1, nfmt 
    

    어쩌면 조금 궁금 T :

    내 현재 코드는 다음과 같이 보인다. hat은 특히 을 의미합니다. 셀 값을 날짜로 설정하면 변경하기 전에 형식이 올바르게 설정된 경우에만 날짜로 읽을 수 있습니다. 이 도와위한 Trevoke에 대한

편집

감사합니다. 귀하의 코드를 시도하고 잘 작동합니다. 차이점은 기존 스프레드 시트를 편집하고 있다는 것입니다.이 경우 서식이 무시됩니다. 이 시도 :

require 'rubygems' 
require 'spreadsheet' 

Spreadsheet.client_encoding = 'UTF-8' 

book = Spreadsheet.open "edit_me.xls" # Blank spreadsheet 

sheet1 = book.worksheet 0 

format = Spreadsheet::Format.new :horizontal_align => :centre 
sheet1.row(0).default_format = format 
sheet1.row(0).push 'I rule 2!', 43.56 

book.write 'edited_you.xls' 
+0

예. .. 당신이 버그를 발견 한 것 같습니다. 나에게도 효과가 없다. – Trevoke

+0

https://rubyforge.org/tracker/index.php?func=detail&aid=27719&group_id=678&atid=2677에 버그 기록을 기록했습니다. 다시 한 번 당신의 도움에 감사드립니다 :) – tsdbrown

+0

어떻게 행과 열 번호로 특정 셀을 푸시합니까 ?? –

답변

2

은 음, 여기 라이브러리의 포맷 방법에 대한 코드입니다 : format.rb합니다. 지난 번 내가 그 보석을 사용했을 때, 형식을 잘 맞추지 못했지만 그 이후로 업데이트 된 것처럼 보입니다.

이 작업을 시도 할 수 있습니다 :

54  # Horizontal alignment  
    55  # Valid values: :default, :left, :center, :right, :fill, :justify, :merge,  
    56  #    :distributed  
    57  # Default:  :default  
    58  enum :horizontal_align, :default, :left, :center, :right, :fill, :justify,  
    59        :merge, :distributed,  
    60   :center  => :centre,  
    61   :merge  => [ :center_across, :centre_across ],  
    62   :distributed => :equal_space 

편집을! 추가 정보

require 'rubygems' 
require 'spreadsheet' 

Spreadsheet.client_encoding = 'UTF-8' 

book = Spreadsheet::Workbook.new 
sheet1 = book.create_worksheet :name => 'test' 

format = Spreadsheet::Format.new :horizontal_align => :centre 
sheet1.row(0).default_format = format 
sheet1.row(0).push 'I rule!' 

book.write 'test.xls' 

이것은 나를 위해 일했습니다. 센터와 센터를 모두 사용해보십시오. 알려줘.

+0

고마워, 나는 이미 설정을 시도했지만 작동하지 않는 것 같습니다. 내 질문에 가이드에서 찾은 의견을 추가했습니다. 필자는 원본 파일의 가운데 맞춤이 있더라도 서식을 수정하지 않는다는 의미를 완전히 이해하지는 못하지만 새로운 데이터를 쓰는 것은이를 대체하는 것처럼 보입니다. – tsdbrown

+0

"데이터 형식"이 "표시 형식"이 아닙니다. 데이터 형식은 날짜, 통화 등입니다. 표시가 .. 음, 깨진 것 같습니다. 그들에게 버그 보고서를 보낼 시간! – Trevoke

+0

내가 이것을하기 전에 나는 이것을 올바르게 사용하는 방법을 이해했다는 것을 더 잘 확인한다. enum은 형식 클래스에 인스턴스 메소드를 추가합니까? 첫 번째 인수는 기본값 (: default)입니다. 나는 통과하려했다 : horizontal_align => : Format.new에 대한 호출을 중심으로하고 format 객체 (nmft)를 생성 한 후에 호출한다. 둘 다 작동하지 않는다. – tsdbrown