clipboard.js — вставить несколько строк в ячейку в Excel

#javascript #excel #clipboard.js

#javascript #excel #clipboard.js

Вопрос:

У меня есть проблема, которую я пытаюсь решить, а именно, что я хотел бы иметь возможность вставлять содержимое буфера обмена (заполняется с помощью clipboard.js i) выделиться с некоторыми ячейками, имеющими две строки.

Я не буду утомлять вас подробностями моего проекта, но вот упрощенная версия:

В настоящее время мой clipboard.js реализация повторяется через объект javascript, извлекая материал. Я создаю его так, чтобы его можно было вставить в excel — вкладка, разделенная символом t, и каждая «строка» заканчивается символом n .

Например, строка буфера обмена для строки выглядит следующим образом (пробелы и имена переменных для удобства чтения):

 "avatart datet textt timen"
  

…который при вставке в Excel выдает, как и ожидалось, аватар, дату, время и текст в своих собственных ячейках — отлично.

Однако я хочу иметь несколько строк на ячейку. Например, столбец ‘alpha’ будет содержать две вещи — изображение аватара и имя аватара.

Теперь, очевидно, я не могу использовать (пробелы для удобства чтения):

 avatarImagen avatarNamet datet timet text
  

… потому что это помещает изображение аватара в строку 1, а остальное — в строку 2.

Я довольно новичок в разработке программного обеспечения, поэтому мне пока не хватает мастерства, чтобы найти решение этой проблемы, но я не сомневаюсь, что способ есть.

У кого-нибудь есть какие-либо предложения или идеи? Честно говоря, все, что угодно, было бы очень оценено.

Приветствия, Дэйв

Ответ №1:

Назначение js будет выглядеть следующим образом:

  var s = '"avatarImagen avatarName"t datet timet text';
  

Вот эквивалент VBA (как я тестировал эту строку буфера обмена): запустив это, а затем вставив в A1, вы получите показанный результат.

 Sub Tester()
   ''Add reference to: Microsoft Forms 2.0 Object Library
    Dim d As New DataObject 

    d.SetText """a" amp; vbLf amp; "b""" amp; vbTab amp; "c"
    d.PutInClipboard

End Sub
  

введите описание изображения здесь

Комментарии:

1. Потрясающий Тим, большое спасибо, что поделился этим. Это в VBA, но должен быть способ репликации в JS.

2. Я рад принять ваш пример в качестве ответа, но я оставлю вопрос открытым еще на несколько часов на случай, если появится ниндзя JS 🙂

3. О, вау, это действительно интересно; Я не подумал о чем-то простом, как заключить их в кавычки. Я протестирую после чая, большое спасибо за обновление.