# Spreadsheet directive for reStructuredText

rstSpreadsheet provides the spreadsheet directive for reStructuredText. You can use it from Docutils or Sphinx. Any python function/module can be used to calculate the cell value. Please see the documentation and examples

## Install

pip install rstspreadsheet # or easy_install rstspreadsheet

## Usage

Use as a standalone program:

python -m rstspreadsheet sample.rst sample.html

Or use as a sphinx extension by adding it to extensions:

extensions = [ # other extensions... 'rstspreadsheet']

## Examples

### Simple spreadsheet

You can do this simple calculation:

p | q | p and q | not (p and q) |
---|---|---|---|

0 | 0 | 0 | 1 |

1 | 0 | 0 | 1 |

0 | 1 | 0 | 1 |

1 | 1 | 1 | 0 |

with this simple code:

.. spreadsheet:: :eq: {2} = {0} and {1} {3} = int(not {2}) === === ========= =============== p q p and q not (p and q) === === ========= =============== 0 0 1 0 0 1 1 1 === === ========= ===============

### Spreadsheet with python functions

If you want to calculate some complicated math functions like this:

function | argument | expression | result |
---|---|---|---|

fac | 5 | fac(5) | 120.00 |

sin | pi | sin(pi) | 0.00 |

cos | pi | cos(pi) | -1.00 |

exp | 1 | exp(1) | 2.72 |

use python module/function!:

.. spreadsheet:: :eq: {2} = '{0}({1})' {3} = {2} :setup: from math import sin, cos, exp, pi def fac(n): return fac(n-1) * n if n > 1 else 1 :format: 3:'%0.2f' ======== ======== ========== ====== function argument expression result ======== ======== ========== ====== fac 5 sin pi cos pi exp 1 ======== ======== ========== ======