JSFiddle - React, Tailwind, and code Playground

HTML

<div id="example_handsontable" class="handsontable"></div>
<div id="example_select2" class="handsontable"></div>

CSS

</style><!-- Ugly Hack due to jsFiddle issue: http://goo.gl/BUfGZ -->

<script src="https://code.jquery.com/jquery-2.0.3.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.css" rel="stylesheet" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/handsontable/0.12.4/handsontable.full.js"></script>
<link rel="stylesheet" media="screen" href="https://cdnjs.cloudflare.com/ajax/libs/handsontable/0.12.4/handsontable.full.css">



<link rel="stylesheet" media="screen" href="http://handsontable.com/demo/css/samples.css">

<style type="text/css">
body {background: white; margin: 20px;}
h2 {margin: 20px 0;}

JavaScript

//11.4 Handson table version

$(document).ready(function () {

    var optionsList = [{id: 1, text: 'first'}, {id: 2, text: 'second'}];
    var columnsList = [{},{},{},{            
                    editor: 'select2',
                    width: '200px',
                    select2Options: { 
                        data: optionsList,
                        dropdownAutoWidth: true,                        
                        width: 'resolve'
                    }
                }
            ],

    $container = $('#example_handsontable');
  
    $container.handsontable({    
    minSpareRows: 1,
    colHeaders: true,
    contextMenu: true,
    columns: columnsList
  });    
    
    $("#example_select2").select2({ 
                        data: optionsList,
                        dropdownAutoWidth: true,                        
                        width: 'resolve',
                        formatSelection: function(val) {
                            return val.text;
                        }
    });

});


/// select2 plugin
(function (Handsontable) {
    "use strict";
 
    var Select2Editor = Handsontable.editors.TextEditor.prototype.extend();
 
    Select2Editor.prototype.prepare = function (td, row, col, prop, value, cellProperties) {
 
        Handsontable.editors.TextEditor.prototype.prepare.apply(this, arguments);
 
        this.options = {};
 
        if (this.cellProperties.select2Options) {
            this.options = $.extend(this.options, cellProperties.select2Options);
        }
    };
 
    Select2Editor.prototype.createElements = function () {
        this.$body = $(document.body);
 
        this.TEXTAREA = document.createElement('input');
        this.TEXTAREA.setAttribute('type', 'text');
        this.$textarea = $(this.TEXTAREA);
 
        Handsontable.Dom.addClass(this.TEXTAREA, 'handsontableInput');
 
        this.textareaStyle = this.TEXTAREA.style;
        this.textareaStyle.width = 0;
        this.textareaStyle.height = 0;
 
   ...