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:
{ data: data 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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size pyhandsontable-0.2.5.2-py3-none-any.whl (6.4 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size pyhandsontable-0.2.5.2.tar.gz (4.4 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for pyhandsontable-0.2.5.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42666ffc54e01573a970fa7510f22637f0bca17f723deb9110b089692157157c |
|
MD5 | 08cfedd68a0fd7fca3d7aa261be5dc8f |
|
BLAKE2-256 | 5ea6daea5561f8341fb387e4fe89310e608b8707112f177005daf4fd5020f5b7 |