ОНОВЛЕННЯ: Це справедливо, лише якщо ви використовуєте ONLYOFFICE замість MS Excel.
Фактично є потік у всіх наведених тут відповідях, а також у прийнятих. Потік полягає в тому, що всякий раз, коли у вас є порожня комірка в Excel і копіюється це, у буфері обміну у вас є 2 символи табуляції поруч один з одним, тому після розділення ви отримуєте один додатковий елемент у масиві, який потім відображається як додаткова комірка в цьому рядку і переміщує всі інші клітини на одну. Тому, щоб уникнути того, що вам в основному потрібно замінити всі подвійні символи табуляції (лише один біля одного) символи в рядку одним символом табуляції і лише потім розділити його.
Оновлена версія jsfiddle @ userfuser тут, щоб виправити цю проблему, фільтруючи вставлені дані за допомогою 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');
})
})
})