The pyCBA code has now been updated to allow for supports with specified displacements (release 0.6 or later). My py_xlCBA spreadsheet and associated functions have been updated to call the pyCBA code for displacement analysis, rather than using my add-on functions. This has the advantages that it now handles rotations as well as vertical displacements, specified displacements may now be called from the py_CBACache function, as well as py_CBA, and the overall code is much simpler. The updated spreadsheet and Python code can be downloaded from:
The function input is as before except that the restraint displacement range has an additional column for specified rotations:

The next release of pyCBA (0.7) will allow for trapezoidal distributed loads, so the distributed load Load/m input has two columns to allow for that. For uniform distributed loads the second column may be left blank.
Results are shown below for a 3 span continuous beam with cantilevers at both ends and specified displacements and rotations at some supports:

Analysis in Strand7 give near exact agreement for all output:

The py_CBAcache function returns the pyCBA results as a cache object, from which the desired results may be xtracted with py_CBARes or py_CBAReact, without running the analysis again. The Python graphical output generated by pyCBA may also be transferred to Excel by setting the Plot_res input to TRUE:

The Strand7 data and results files for the example beam are included in the download file, and typical output is shown below:

Pingback: … and then py_xlCBA 0.5 | Newton Excel Bach, not (just) an Excel Blog