Adding Excel xlsx support and prefixed images
* New sample! * New API function! * Ignoring _img in samples
This commit is contained in:
+20
-5
@@ -1,4 +1,4 @@
|
||||
require 'spreadsheet'
|
||||
require 'roo'
|
||||
|
||||
module Squib
|
||||
class Deck
|
||||
@@ -7,8 +7,23 @@ module Squib
|
||||
raise 'Not implemented!'
|
||||
end
|
||||
|
||||
def xls(file: 'data.xls', sheet: 0)
|
||||
|
||||
end
|
||||
def xlsx(file: 'deck.xlsx', sheet: 0)
|
||||
s = Roo::Excelx.new(file)
|
||||
s.default_sheet = s.sheets.first
|
||||
data = {}
|
||||
s.first_column.upto(s.last_column) do |col|
|
||||
header = s.cell(s.first_row,col).to_s
|
||||
data[header] = []
|
||||
(s.first_row+1).upto(s.last_row) do |row|
|
||||
cell = s.cell(row,col)
|
||||
# Roo hack for avoiding unnecessary .0's on whole integers
|
||||
cell = s.excelx_value(row,col) if s.excelx_type(row,col) == [:numeric_or_formula, "General"]
|
||||
data[header] << cell
|
||||
end#row
|
||||
end#col
|
||||
data
|
||||
end#xlsx
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
module Squib
|
||||
class Deck
|
||||
|
||||
def save(range: :all, format: :png)
|
||||
def save(range: :all, format: :png, prefix: "card_")
|
||||
format = [format].flatten
|
||||
save_png(range: range) if format.include? :png
|
||||
save_png(range: range, prefix: prefix) if format.include? :png
|
||||
save_pdf if format.include? :pdf
|
||||
end
|
||||
|
||||
def save_png(range: :all)
|
||||
def save_png(range: :all, dir: "_img", prefix: 'card_')
|
||||
range = rangeify(range)
|
||||
range.each { |i| @cards[i].save_png(i) }
|
||||
range.each { |i| @cards[i].save_png(i, dir, prefix) }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
module Squib
|
||||
class Card
|
||||
|
||||
def save_png(i, dir: '_img')
|
||||
cairo_context.target.write_to_png("#{dir}/img_#{i}.png")
|
||||
def save_png(i, dir, prefix)
|
||||
cairo_context.target.write_to_png("#{dir}/#{prefix}#{i}.png")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user