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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size pyhandsontable-0.1.10-py3-none-any.whl (6.5 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size pyhandsontable-0.1.10.tar.gz (4.4 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for pyhandsontable-0.1.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 887500e9310a7fb6b6923f2bc92cca1d49b5b5f2714fb06679f2e7c4238382f4 |
|
MD5 | 1af8ac8be860a78f7bcfecd0b1e72c3f |
|
BLAKE2-256 | 53752f4b34372c4bc1a513733d301015541af5e78361fb671ad0776cb1bba692 |