Может ли рубиновая таблица обработать текст? - PullRequest
3 голосов
/ 05 января 2011

Есть ли способ использования гема электронных таблиц ruby ​​для создания электронной таблицы с ячейкой, текст которой обернут?(Если нет, есть ли другой способ сделать это?)

Спасибо, --Paul

ps В ответ на два хороших предложения, которые, к сожалению, не сработают, я должен отметить: 1) В настоящее время я не могу преобразовать свое приложение ruby ​​в JRuby.2) Я работаю на Linux, а не на Windows.

Ответы [ 4 ]

10 голосов
/ 15 марта 2011

Попробуйте это для гема электронной таблицы Ruby:

 fmt = Spreadsheet::Format.new :text_wrap => true
 sheet.row(y).set_format(x, fmt)

Форма здесь:

http://rubyforge.org/forum/forum.php?set=custom&forum_id=2920&style=nested&max_rows=50&submit=Change+View

2 голосов
/ 05 января 2011

Я согласен с Phrogz в том, что вы должны использовать Win32OLE вместо гема электронных таблиц, если это возможно. Вот как вы можете обернуть текст ячейки, используя 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.S. Если я не пропустил его где-то, он не выглядит так, как будто вы можете обернуть текст с помощью гема электронной таблицы.


РЕДАКТИРОВАТЬ: Поскольку вопрос добавил требование Linux, я добавляю это как ответ Linux.

Вот код, который, я считаю, будет работать с POI Ruby Bindings:

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

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

Я не проверял это. Он был адаптирован со страницы POI Ruby и для таблицы POI .

1 голос
/ 05 января 2011

Если выбран вариант 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.Есть привязки для МРТ: http://poi.apache.org/poi-ruby.html

0 голосов
/ 05 января 2011

Вместо использования гема электронных таблиц, который генерирует электронную таблицу с нуля с ограниченными возможностями, я предлагаю использовать Win32OLE для написания сценария Excel для изменения существующего файла.Это подходит только в том случае, если вы работаете в Windows и у вас установлена ​​копия Excel, которую может открыть Ruby, и, следовательно, она обычно не подходит для серверной среды.

...