failoflife,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(function() {
var table = $(".table-editor");
$("#remcol").click(function() {
$("tr td:last-child", table).remove()
});
$("#addcol").click(function() {
$("tr", table).append(function(i) {
var num = "a" + (i + 1) + "," + ($("td", this).length + 1);
return $("<td>").append($("<input/>", {
attr: {
size: "2",
maxlength: "2",
placeholder: num
}
}))
})
});
$("#remrow").click(function() {
$("tr:last-child", table).remove()
});
$("#addrow").click(function() {
var clone = $("tbody tr:last-child", table), first = !clone.length;
clone = first ? $("<tr/>", {"class" : "normal-row"}) : clone.clone();
clone.appendTo(table);
first && $("#addcol").trigger("click");
var num = "a" + (clone.index() + 1) +
",";
$("input", clone).each(function(indx, input) {
$(input).attr({
placeholder: num + ++indx
})
})
})
});
</script>
</head>
<body>
<table class="table-editor">
<tbody>
<tr class="normal-row">
<td><input type="text" size="2" maxlength="2" placeholder="a1,1"></td>
<td><input type="text" size="2" maxlength="2" placeholder="a1,2"></td>
<td><input type="text" size="2" maxlength="2" placeholder="a1,3"></td>
</tr>
<tr class="normal-row">
<td><input type="text" size="2" maxlength="2" placeholder="a2,1"></td>
<td><input type="text" size="2" maxlength="2" placeholder="a2,2"></td>
<td><input type="text" size="2" maxlength="2" placeholder="a2,3"></td>
</tr>
<tr class="normal-row">
<td><input type="text" size="2" maxlength="2" placeholder="a3,1"></td>
<td><input type="text" size="2" maxlength="2" placeholder="a3,2"></td>
<td><input type="text" size="2" maxlength="2" placeholder="a3,3"></td>
</tr>
<tr class="normal-row">
<td><input type="text" size="2" maxlength="2" placeholder="a4,1"></td>
<td><input type="text" size="2" maxlength="2" placeholder="a4,2"></td>
<td><input type="text" size="2" maxlength="2" placeholder="a4,3"></td>
</tr>
</tbody>
</table>
<input id="addcol" type="button" value="Add Column" />
<input id="remcol" type="button" value="Remove Column" />
<input id="addrow" type="button" value="Add row" />
<input id="remrow" type="button" value="Remove row" />
</body>
</html>