excelinator
excelinator copied to clipboard
Is there a way to specify field types?
Once we have the CSV file as XLS, all the data it's taken as text, and I would like to have as the datatype they are, such as: Number, Date, etc.
Is there a way to specify this? (Like an options hash or something) Thanks!
I didn't submit a PR adding this code yet but I have something that may be helpful for you.
module Excelinator
def self.array_to_xls(array)
book = Spreadsheet::Workbook.new
sheet = book.create_worksheet
array.each_with_index do |row_data, index|
row = sheet.row(index)
row_data.each_with_index do |cell_data, row_index|
if cell_data.kind_of?(Date)
row.set_format row_index, Spreadsheet::Format.new(:number_format => 'MM/DD/YYYY')
end
row.push(cell_data)
end
end
content = ''
ios = StringIO.new(content)
book.write(ios)
content
end
end
Hey, yes! It's seems to be the feature that I need. How can I integrate this code with the Excelinator I am using? By cloning the repo? Would this feature be enabled in the future? Thanks a lot!
I'm planning submit a PR adding something like that but it needs to be improved to work with other types.
To be honest, you don't need Excelinator for that, you can use https://github.com/zdavatz/spreadsheet directly (if you don't need anything else from Excelinator).
Yeah, Excelinator is just a little bit of glue code.