andrufka46rus
@andrufka46rus
веб-рукожоп

Как вытащить из буфера данные при копировании ячеек Excel?

Ситуация такая. Вот допустим, копируем 2 выделенных ячейки в экселе (одна название, другое число). Если в экселе нажать вставить, то он понимает, что это 2 разные ячейки и вставляет их в 2 ячейки.
Возможно ли реализовать кнопку на странице, при которой в 2 input'а, будут вставляться данные раздельно (1 инпут - первая ячейка, 2 - вторая)? Где найти эти данные через JS?
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Скопируйте эти две ячейки, и вставьте в простой тектовый редактор (например Notepad). И вы увидите, что текст будет в виде двух строк, разделённых табуляцией \t. Соответственно при вставлении скопированного на вашей страничке можно разбить вставляемое по символу табуляции, и распихать части строки в нужные input-ы...
Это элементарно, Ватсон!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hzzzzl
@hzzzzl
в пределах одной страницы (одного JS скрипта), которую не будешь перезагружать, скорее всего можно как-то так закрутить

document.addEventListener('copy', (e) => {
    // тут можно поймать ctrl+c 
    // и например записать значения инпутов в переменную / сторадж
});

document.addEventListener('paste', (e) => {
    // а тут ctrl+v
});


UPD
при копировании можно перезаписать буфер
document.addEventListener('copy', function(e){
  e.clipboardData.setData('text/plain', 'ничего ты не скопируешь');
  e.preventDefault(); 
});

вот по идее сюда можно сунуть строку в твоем формате, и тогда можно будет копировать туда-сюда в пределах сайта/веб-приложения, даже перезагружая браузер
https://caniuse.com/#feat=clipboard
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы