2011-01-04 6 views
3

루비 스프레드 시트 젬을 사용하여 텍스트가 줄 바꿈 된 셀이있는 스프레드 시트를 만들 수 있습니까? (그렇지 않다면, 그것을 할 수있는 다른 방법은 무엇입니까?)루비 스프레드 시트로 텍스트를 줄 바꿈 할 수 있습니까?

감사합니다, - 폴

추신 불행히도 나를 위해 작동하지 않는 두 가지 좋은 제안에 대한 응답으로 나는주의해야합니다 : 1) 현재 루비 애플리케이션을 JRuby로 변환 할 수 없습니다. 2) Windows가 아닌 Linux에서 개발 중입니다.

+0

어디 그냥 "스프레드 시트"라고 @Zabba 그 보석 – Zabba

+0

입니다 ... https : //로 rubygems.org/gems/spreadsheet –

+0

리눅스에서 일할 수있는 대답을 얻는 방법에 대해 궁금합니다. –

답변

-1

제한된 기능으로 스프레드 시트를 생성하는 스프레드 시트 젬 대신에 Win32OLE을 사용하여 Excel을 스크립팅하여 기존 파일을 수정하는 것이 좋습니다. 이 기능은 Windows 환경에 있고 Ruby에서 열 수있는 Excel 사본이 설치되어있어 일반적으로 서버 환경에 적합하지 않은 경우에만 적합합니다.

1

JRuby가 옵션 인 경우 우수 POI 라이브러리를 사용할 수 있습니다.이 라이브러리는 Excel에서 파일 형식으로 수행 할 수있는 모든 작업을 수행 할 수 있습니다. 셀 포장 옵션을 실제로 설정할 수 있습니다.

지난 수년간 블로그에 올린 블로그 게시물은 Java API를 훨씬 더 Ruby와 유사하게 만들 수있는 방법을 보여줍니다. 예를 들어 POI를 사용합니다. http://mysterycoder.blogspot.com/2007/04/api-unickifying-with-jruby.html

jruby-poi 프로젝트가 이러한 아이디어를 취해 보석으로 만든 것처럼 보입니다. https://github.com/kameeoze/jruby-poi

편집 : JRuby는 필요하지 않습니다. MRI를위한 바인딩이 있습니다 : http://poi.apache.org/poi-ruby.html

2

가능한 경우 스프레드 시트 젬 대신 Win32OLE을 사용해야한다는 Phrogz에 동의합니다. 이것은 당신이 Win32OLE 사용하여 셀의 텍스트 줄 바꿈 할 방법은 다음과 같습니다

worksheet.Range("A1").WrapText = true         곳 worksheet 참조 특정 워크 시트.

xl = WIN32OLE.new('Excel.Application')  # => opens Excel 
wb = xl.Workbooks.Add();     # => adds a workbook 
worksheet = wb.Worksheets(3)    # => 3rd sheet (Excel starts at 1) 
worksheet.Range("A1").value = "Hello, how do you do?" 
worksheet.Range("A1").WrapText = true  # => wraps the text  

난이 도움이되기를 바랍니다 : 여기에

은보다 완벽한 예입니다. Win32OLE을 사용하여 Excel에서 작업하고 있습니다.

P. 어딘가에 놓친 경우를 제외하고는 스프레드 쉬트 젬을 사용하여 텍스트를 줄 바꿈 할 수있는 것처럼 보이지 않습니다.


편집 : 질문 리눅스 요구 사항을 추가했기 때문에, 나는 리눅스 응답으로이 추가 해요.

h = Poi4r::HSSFWorkbook.new 
s = h.createSheet("Sheet1") 
r = s.createRow(0) 
c = r.createCell(0) 

t = h.createCellStyle() 
t.setWrapText(true) 

나는이 테스트되지 않은 : 여기

내가 POI 루비 바인딩을 사용할 수 있다고 일부 코드입니다. POI Ruby pagequickguide for POI spreadsheet에서 변경되었습니다.

관련 문제