Xlsx to html converting
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
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
XLSXToHTML.configure do |config|
config.template = 'path/to/template'
end
Or
configuration = XLSXToHTML.configuration
configuration.template = 'path/to/template'
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 |
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>
Bug reports and pull requests are welcome on GitHub at https://github.com/oleksiivykhor/xlsx_to_html
The gem is available as open source under the terms of the MIT License.