Bring the power of Handsontable to Python and Jupyter Notebook
Project description
pyhandsontable
View a 2-D array, probably from pyexcel in Jupyter Notebook, and export to *.html
.
Installation
pip install pyhandsontable
Usage
>>> from pyhandsontable import view_table
>>> view_table(width=800, height=500, data=data_matrix, **kwargs)
A Handsontable is shown in Jupyter Notebook.
Acceptable kwargs
- title: title of the HTML file
- maxColWidth: maximum column width. (Default: 200)
- autodelete: whether the temporary HTML file should be autodeleted. (Default: True)
- filename: filename of the temporary HTML file (default: 'temp.handsontable.html')
- css: url of the Handsontable CSS
- js: url of the Handsontable Javascript
- config: add additional config as defined in https://docs.handsontable.com/pro/5.0.0/tutorial-introduction.html
- This will override the default config (per key basis) which are:
{
rowHeaders: true,
colHeaders: true,
dropdownMenu: true,
filters: true,
modifyColWidth: function(width, col){
if(width > maxColWidth) return maxColWidth;
}
}
Post-creation editing of the HTML
You might try from bs4 import BeautifulSoup
:
config = {
'colHeaders': ['id'] + list(CardTuple._fields),
'columns': [
{'data': 0},
{'data': 1, 'renderer': 'markdownRenderer'},
{'data': 2, 'renderer': 'markdownRenderer'},
{'data': 3},
{'data': 4}
]
}
filename = 'temp.handsontable.html'
try:
table = view_table(data=([[i] + list(record.to_formatted_tuple())
for i, record in self.find(keyword_regex, tags)]),
width=width,
height=height,
config=config,
filename=filename,
autodelete=False)
with open(filename, 'r') as f:
soup = BeautifulSoup(f.read(), 'html.parser')
div = soup.new_tag('div')
js_markdown = soup.new_tag('script',
src='https://cdn.rawgit.com/showdownjs/showdown/1.8.6/dist/showdown.min.js')
js_custom = soup.new_tag('script')
with open('gflashcards/js/markdown-hot.js') as f:
js_custom.append(f.read())
div.append(js_markdown)
div.append(js_custom)
script_tag = soup.find('script')
soup.body.insert(soup.body.contents.index(script_tag) + 1, div)
with open(filename, 'w') as f:
f.write(str(soup))
return table
finally:
Timer(5, os.unlink, args=[filename]).start()
Screenshots
Related projects
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyhandsontable-0.1.10.tar.gz
(4.4 kB
view hashes)
Built Distribution
Close
Hashes for pyhandsontable-0.1.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 887500e9310a7fb6b6923f2bc92cca1d49b5b5f2714fb06679f2e7c4238382f4 |
|
MD5 | 1af8ac8be860a78f7bcfecd0b1e72c3f |
|
BLAKE2b-256 | 53752f4b34372c4bc1a513733d301015541af5e78361fb671ad0776cb1bba692 |