Как скопировать массив JavaScript 2D в буфер обмена, чтобы вставить его в Excel? - PullRequest
3 голосов
/ 16 марта 2020

Пример 2D-массива:

var arr = [
  ["Mike", "Cane", 23],
  ["Jeff", "Meyers", 46],
  ["Thomas", "Bush", 67]
]

Как скопировать 2D-массив в буфер обмена, чтобы затем вставить его в электронную таблицу Excel? Строки и столбцы должны быть сохранены как есть в массиве. Это должно работать так же, как если бы я отмечал диапазон ячеек в Excel, а затем вставлял их обратно.

Ответы [ 3 ]

2 голосов
/ 16 марта 2020

Это довольно просто, вам просто нужно добавить символ табуляции \t для разделения столбцов и новую строку \n для разделения строк.

Используйте этот код:

const excelData = arr
  .map(lines => lines.join("\t"))
  .join("\n");

const arr = [
  ["Mike", "Cane", 23],
  ["Jeff", "Meyers", 46],
  ["Thomas", "Bush", 67]
];

document.getElementById('convert').addEventListener('click', () => {
  const excelData = arr
    .map(lines => lines.join("\t"))
    .join("\n");
 
  document.getElementById('excel').textContent = excelData;
});
<textarea id="excel" cols="30" rows="6"></textarea><br>
<button id="convert">Make Excel Clipboard data</button>

Запустите фрагмент кода, нажмите кнопку и скопируйте текст вставки в Excel, чтобы проверить его.

1 голос
/ 16 марта 2020

Это решение работает потрясающе. Он использует ( CSV как) разрывы строк для новой строки и табуляции для новой ячейки. Вставив такой текст в таблицу Excel, OpenOffice / LibreOffice Cal c, он обнаружит его в виде нескольких ячеек. Он также работает с Google Docs.

Тест:

<button onclick="onTest()" id="test">Copy to clipboard.</button>

Редактировать:

Это решение не поддерживает ячейки с внутренними переносами строк или табуляциями. Unicode не ascii может вызвать проблемы с некоторыми программами работы с электронными таблицами.

См. Также

Как скопировать в буфер обмена в JavaScript?
0 голосов
/ 16 марта 2020

Вы должны сохранить свой массив как файл JSON, после чего вы можете импортировать его в свои данные JSON на лист Excel. Выполните следующие шаги, чтобы импортировать различные формы данных в таблицу Excel.

https://support.office.com/en-us/article/import-data-from-external-data-sources-power-query-be4330b3-5356-486c-a168-b68e9e616f5a

...