Nová ukázka
Reset
Načíst z URL
Uložit a získat odkaz
Vztahuje se k…
Nevyplňujte
Napiště „nejsem robot“
▶
Přepnout zobrazení
Výsledek
Do buněk je možné vkládat jakýkoli text nebo čísla přímo. Pokud vzorec začíná rovnítkem, vyhodnotí se jako JavaScripový výraz; undefined se nahrazuje za nulu. Ve vzorcích je možné používat odkazy na další buňky, ty se zapisují jako [řádek;sloupec] (zobrazí se při najetí myší nad buňku). Vždy se přepočítává pouze aktuální buňka, nikoli buňky, které na ní závisí. <div id="excel"></div>
HTML
Autoformát
Standardní režim
Mobilní zobrazení
CSS
Autoformát
CSS reset
Až na konci
function genTable(rows, cols) { var cells = []; var table = document.createElement('table'); for (var i = 0; i < rows; i++) { var row = []; var tr = document.createElement('tr'); for (var j = 0; j < cols; j++) { var td = document.createElement('td'); td.title = '[' + i + ';' + j + ']'; (function(i, j) { var input = document.createElement('input'); input.onfocus = function() { if (input.getAttribute('data-formula')) { input.value = input.getAttribute('data-formula'); } }; input.onblur = function() { if (/^=/.test(input.value)) { var formula = input.value; input.setAttribute('data-formula', formula); input.value = ''; try { formula = formula.substring(1); formula = formula.replace(/\[\s*(\d+)\s*;\s*(\d+)\s*\]/, function(match, p1, p2, offset, string) { if (cells[p1] && cells[p1][p2]) { return cells[p1][p2].value; } else { throw 'E Wrong Index'; } }); try { input.value = eval(formula) || 0; } catch(e) { throw 'E Wrong formula'; } } catch(err) { input.value = err; } } else { input.removeAttribute('data-formula'); } }; input.onkeydown = function(e) { e = e || window.event; if (e.keyCode == 13) { input.blur(); if (cells[i+1] && cells[i+1][j]) { cells[i+1][j].focus(); } } } td.appendChild(input); row.push(input); })(i, j); tr.appendChild(td); } table.appendChild(tr); cells.push(row); } return table; } var table = genTable(8, 3); document.getElementById('excel').appendChild(table);
J
ava
S
cript
Autoformát
jQuery
Umístění JS
window.onload
</head>
</body>