Spreadsheet » Historie » Version 8
Martin Meier, 26.06.2014 17:55
| 1 | 1 | Martin Meier | h1. Spreadsheet HowTo |
|---|---|---|---|
| 2 | |||
| 3 | Das Gem *Spreadsheet* ist extrem spärlich dokumentiert. |
||
| 4 | 2 | Martin Meier | Viele Details habe ich auf http://stackoverflow.com gesammelt. Vielen Dank der Community. Ich versuche hier mal zusammen zu fassen. |
| 5 | |||
| 6 | h2. Google Gruppe |
||
| 7 | |||
| 8 | Nachdem die Dokumentation von spreadsheet.ch immer wieder auf das inzwischen geschlossene rubyforge.org verweist, ist eine verbeleibende Quelle von Informationen die Google-Gruppe: |
||
| 9 | |||
| 10 | https://groups.google.com/forum/#!forum/rubyspreadsheet |
||
| 11 | |||
| 12 | h2. Addressiern von Zellen |
||
| 13 | |||
| 14 | Der Einstieg ist in https://github.com/zdavatz/spreadsheet/blob/master/GUIDE.md beschrieben. |
||
| 15 | |||
| 16 | 3 | Martin Meier | Workbooks (nur die verwende ich) sind hierarchisch aufgebaut. |
| 17 | 2 | Martin Meier | |
| 18 | Sheets, Rows und Cells werden in der Regel über ihren 0-basierten Index angesprochen. |
||
| 19 | Cells können an eine bestende Row angehängt werden: |
||
| 20 | |||
| 21 | 7 | Martin Meier | <pre><code class="ruby"> |
| 22 | 2 | Martin Meier | row.push cell |
| 23 | 7 | Martin Meier | </code></pre> |
| 24 | 1 | Martin Meier | |
| 25 | 4 | Martin Meier | h2. Formatieren |
| 26 | |||
| 27 | 5 | Martin Meier | Zellen können formatiert werden, indem ihnen ein _Spreadsheet::Format_ zugewiesen wird. |
| 28 | 8 | Martin Meier | Das Format kann auch inkrementell geändert werden mit _update_format_. Dabei mir kein Format übergeben, sondern ein Hash mit Attributen: |
| 29 | 7 | Martin Meier | <pre><code class="ruby"> |
| 30 | nb_format = Spreadsheet::Format.new number_format: '#,##0.00' |
||
| 31 | 5 | Martin Meier | aqua = Spreadsheet::Format.new pattern_fg_color: :xls_color_20, weight: :bold |
| 32 | 4 | Martin Meier | row = book.sheet(0)[1] |
| 33 | 1 | Martin Meier | row.set_format(1,nb_format) |
| 34 | 8 | Martin Meier | row.update_format(1,weight: :bold) |
| 35 | 7 | Martin Meier | </code></pre> |
| 36 | 5 | Martin Meier | |
| 37 | 1 | Martin Meier | Zu Background-Farben siehe http://dmcritchie.mvps.org/excel/colors.htm, |
| 38 | wobei zu beachten ist, dass Ruby die Farben ab 0 und nicht ab 1 zählt, also immer eins abziehen :-) |
||
| 39 | 8 | Martin Meier | |
| 40 | h3. Spalten |
||
| 41 | |||
| 42 | Spalten weren mit colunn angesprochen, können ein default-Format und eine Breite haben: |
||
| 43 | <pre><code class="ruby"> |
||
| 44 | nb_format = Spreadsheet::Format.new(number_format: '#,##0.00') # deutsches Excel tauscht . und , aus |
||
| 45 | sheet.column(1).default_format = nb_format |
||
| 46 | sheet.column(1).width = 100 |
||
| 47 | </code></pre> |
||
| 48 | |||
| 49 | 4 | Martin Meier | |
| 50 | 1 | Martin Meier | h2. Verbinden von Zellen (cell merge) |
| 51 | |||
| 52 | 7 | Martin Meier | <pre><code class="ruby"> |
| 53 | 1 | Martin Meier | sheet.merge_cells(start_row, start_col, end_row, end_col) |
| 54 | 7 | Martin Meier | </code></pre> |
| 55 | 1 | Martin Meier | Danke an http://stackoverflow.com/a/11603384/1065703 |