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)
- renderers: the renderers to use in generating the columns (see below.)
- 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:
{
data: data
rowHeaders: true,
colHeaders: true,
dropdownMenu: true,
filters: true,
modifyColWidth: function(width, col){
if(width > maxColWidth) return maxColWidth;
}
}
renderers
example, if your data is a 2-D array:
{
1: 'html',
2: 'html'
}
or if your data is list of dict:
{
"front": 'html',
"back": 'html'
}
Post-creation editing of the HTML
You might try from bs4 import BeautifulSoup
:
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.2.7.tar.gz
(4.5 kB
view hashes)
Built Distribution
Close
Hashes for pyhandsontable-0.2.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0de2ccfa75cf5bda2f0ae37e3931be29978890f695c7fd7041e7e64a5e2a3dc1 |
|
MD5 | 4de4887ae6e7e6c17b9d7e3c87ab0a15 |
|
BLAKE2b-256 | cfa9b372fbd7e47218128f2da3a02cbd53f27112362e18fd2ae4feccd14c6be1 |