XlsxToHtml
Xlsx to html converting
Installation
Add this line to your application's Gemfile:
gem 'xlsx_to_html'
And then execute:
$ bundle
Or install it yourself as:
$ gem install xlsx_to_html
Usage
require 'xlsx_to_html'
XLSXToHTML.convert('path/to/xlsx')
Or
require 'xlsx_to_html'
XLSXToHTML.convert('path/to/xlsx', ['Expected', 'Headers'], key: :headers)
Specify key (:headers
or :rows
) when you use different templates for headers and rows
Configuration
XLSXToHTML.configure do |config|
config.template = 'path/to/template'
end
Or
configuration = XLSXToHTML.configuration
configuration.template = 'path/to/template'
Configuration options
Option | Expected value | Default value | Notes |
---|
template | path/to/template | default/template/path | |
headers_template | path/to/template | defautl/template/path | Use with common_template false |
rows_template | path/to/template | defautl/template/path | Use with common_template false |
common_template | true , false | true | |
without_headers | true , false | false | Use when spreadsheet has no headers |
dynamic_headers_row | true , false | false | When headers are present not on the first line. Use with expected_headers |
Templates
Use template markup as below
For common template
<table>
<thead>
<tr>
<%- @headers.each do |header| -%>
<th><%= header %></th>
<%- end -%>
</tr>
</thead>
<tbody>
<%- @rows.each do |row| -%>
<tr>
<%- row.each do |cell| -%>
<td><%= cell %></td>
<%- end -%>
</tr>
<%- end -%>
</tbody>
</table>
For headers template
<thead>
<tr>
<%- @headers.each do |header| -%>
<th><%= header %></th>
<%- end -%>
</tr>
</thead>
For rows template
<tbody>
<%- @rows.each do |row| -%>
<tr>
<%- row.each do |cell| -%>
<td><%= cell %></td>
<%- end -%>
</tr>
<%- end -%>
</tbody>
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/oleksiivykhor/xlsx_to_html
License
The gem is available as open source under the terms of the MIT License.