MISE À JOUR: Ceci n'est vrai que si vous utilisez ONLYOFFICE au lieu de MS Excel.
Il y a en fait un flux dans toutes les réponses fournies ici et aussi dans celle acceptée. Le flux est que chaque fois que vous avez une cellule vide dans Excel et copiez cela, dans le presse-papiers, vous avez 2 caractères de tabulation l'un à côté de l'autre, donc après la division, vous obtenez un élément supplémentaire dans le tableau, qui apparaît alors comme une cellule supplémentaire dans cette ligne et déplace toutes les autres cellules d'une unité. Donc, pour éviter cela, vous devez essentiellement remplacer tous les caractères à double tabulation (onglets côte à côte uniquement) dans une chaîne par un caractère de tabulation et le diviser ensuite.
Une version mise à jour de jsfiddle de @ userfuser est là pour résoudre ce problème en filtrant les données collées avec removeExtraTabs
http://jsfiddle.net/sTX7y/794/
function removeExtraTabs(string) {
return string.replace(new RegExp("\t\t", 'g'), "\t");
}
function generateTable() {
var data = removeExtraTabs($('#pastein').val());
var rows = data.split("\n");
var table = $('<table />');
for (var y in rows) {
var cells = rows[y].split("\t");
var row = $('<tr />');
for (var x in cells) {
row.append('<td>' + cells[x] + '</td>');
}
table.append(row);
}
$('#excel_table').html(table);
}
$(document).ready(function() {
$('#pastein').on('paste', function(event) {
$('#pastein').on('input', function() {
generateTable();
$('#pastein').off('input');
})
})
})