Module: XLSSestavy
- Defined in:
- lib/xls_sestavy/sestava.rb,
lib/xls_sestavy/sloupec.rb,
lib/xls_sestavy/version.rb,
lib/xls_sestavy/excel_helper.rb,
lib/xls_sestavy/rada_sloupcu.rb,
lib/xls_sestavy/excel_formaty.rb,
lib/xls_sestavy/excel_tabulky.rb,
lib/xls_sestavy/definice_sloupcu.rb,
lib/xls_sestavy/argumenty_sestavy.rb,
lib/xls_sestavy/preddefinovany_sloupec.rb
Defined Under Namespace
Modules: ExcelFormaty, ExcelTabulky Classes: ArgumentySestavy, DefiniceSloupcu, PreddefinovanySloupec, RadaSloupcu, Sestava, Sloupec
Constant Summary collapse
- VERSION =
"0.2.13"
Class Method Summary collapse
-
.ciselne_souradnice(bunky) ⇒ Object
převod standartních souřadnic na pole číselných souradnic: ‘A3’ => [[2,0]], ‘A5:B7’ => [[4,0],] <radek, sloupec>.
-
.col_cm_to_p(cm) ⇒ Object
převod cm na points pro sloupce přibližně ..
- .def_mena=(mena) ⇒ Object
-
.douprav_hodnotu_bunky(hodnota) ⇒ Object
doupravuje hodnotu buňky, aby nedošlo na předvídatelné konflikty.
-
.mm_to_inch(mm) ⇒ Object
převod z mm na palce.
-
.num_format(sym) ⇒ Object
klíč num_formátu pro excel.
-
.row_cm_to_p(cm) ⇒ Object
převod cm na points pro řádky.
-
.sloupec_cislo(znak) ⇒ Object
číslo sloupce ze znaků (‘A’ => 0) do maximální hodnoty ‘ZZ’.
-
.sloupec_pismeno(cislo) ⇒ Object
písmeno sloupce z čísla (0 => ‘A’) do maximální hodnoty ‘ZZ’.
Class Method Details
.ciselne_souradnice(bunky) ⇒ Object
převod standartních souřadnic na pole číselných souradnic: ‘A3’ => [[2,0]], ‘A5:B7’ => [[4,0],] <radek, sloupec>
41 42 43 44 45 46 47 |
# File 'lib/xls_sestavy/excel_helper.rb', line 41 def self.ciselne_souradnice(bunky) a = bunky.match /^(\D+)(\d+)(:(\D+)(\d+))?$/ return unless a souradnice = [[a[2].to_i-1, sloupec_cislo(a[1])]] souradnice << [a[5].to_i-1, sloupec_cislo(a[4])] if a[3] souradnice end |
.col_cm_to_p(cm) ⇒ Object
převod cm na points pro sloupce přibližně .. (nenalezen přesný výpočet)
10 11 12 |
# File 'lib/xls_sestavy/excel_helper.rb', line 10 def self.col_cm_to_p(cm) (cm*28.3464567/5.6).to_i end |
.def_mena=(mena) ⇒ Object
87 88 89 90 91 92 93 |
# File 'lib/xls_sestavy/excel_helper.rb', line 87 def self.def_mena=(mena) @def_mena = case mena when '€'; '[$€-4B1]' when 'Kč'; '[$Kč-405]' else; '??' end end |
.douprav_hodnotu_bunky(hodnota) ⇒ Object
doupravuje hodnotu buňky, aby nedošlo na předvídatelné konflikty. Důležité pro všechny typy času/datumu, protože to je potřeba převést na textový řetězec pro excel stravitelný
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/xls_sestavy/excel_helper.rb', line 51 def self.douprav_hodnotu_bunky(hodnota) case hodnota when Hash ret = '---' hodnota.each_pair{|k, v| ret += "\n#{k}: #{v}"} ret when Array hodnota.join ', ' when Time, DateTime, Date I18n.l hodnota, format: :excel when NilClass '' else hodnota end end |
.mm_to_inch(mm) ⇒ Object
převod z mm na palce
15 16 17 |
# File 'lib/xls_sestavy/excel_helper.rb', line 15 def self.mm_to_inch(mm) mm/25.4 end |
.num_format(sym) ⇒ Object
klíč num_formátu pro excel
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/xls_sestavy/excel_helper.rb', line 69 def self.num_format(sym) case sym when :cas 'yyyy-MM-dd HH:mm:ss' when :datum 'd. M. yyyy' when :suma "#,###0.00 #{@def_mena}" when :pocet '#,##0' when :cislo_smlouvy '#0' else raise "nedefinovaný num_format: #{sym}" end end |
.row_cm_to_p(cm) ⇒ Object
převod cm na points pro řádky
4 5 6 |
# File 'lib/xls_sestavy/excel_helper.rb', line 4 def self.row_cm_to_p(cm) (cm*28.3464567).to_i end |
.sloupec_cislo(znak) ⇒ Object
číslo sloupce ze znaků (‘A’ => 0) do maximální hodnoty ‘ZZ’
21 22 23 24 25 26 27 28 |
# File 'lib/xls_sestavy/excel_helper.rb', line 21 def self.sloupec_cislo(znak) znak.upcase! if znak.length==1 znak.ord-65 elsif znak.length==2 (znak[0].ord-64)*26 + znak[1].ord-65 end end |
.sloupec_pismeno(cislo) ⇒ Object
písmeno sloupce z čísla (0 => ‘A’) do maximální hodnoty ‘ZZ’
32 33 34 35 36 37 |
# File 'lib/xls_sestavy/excel_helper.rb', line 32 def self.sloupec_pismeno(cislo) return (cislo+65).chr if cislo < 26 a = (cislo/26) - 1 b = cislo%26 "#{(a+65).chr}#{(b+65).chr}" end |