Я работаю над сайтом, и одна из его функций - скопировать текст в буфер обмена, чтобы пользователи могли вставлять этот текст в свои таблицы Excel. То, что они будут копировать в буфер обмена, на самом деле представляет собой несколько значений, разделенных табуляцией, чтобы при копировании в Excel (при условии, что они сохранили функциональность текста по умолчанию для столбцов) текст разбивался на несколько ячеек.
Для Например, у меня есть это:
getCopyText() {
return `a \t b \t b \t ${FAKE_FORECAST_VALUE} \t d \t e`
}
render() {
return (
....
<CopyToClipboard text={this.getCopyText()}>
<Button">
Copy to Clipboard
</Button>
</CopyToClipboard>
...
)
}
Когда я нажимаю кнопку, чтобы скопировать текст в буфер обмена и вставить его в Excel, он, похоже, не реагирует на вкладки и просто выглядит как пробелы (также не разделяет значения на столбцы).
Для проверки работоспособности я попытался вставить исходную строку с буфером обмена в Word и включил отображение символов табуляции. Он показал символы табуляции. ![enter image description here](https://i.stack.imgur.com/oX8MG.png)
I then copied the pasted string from Word into Excel. I was confused to see that if I copied the string from Word (which was just pasted from the clipboard) into Excel, it would respond to the tab characters and split the text into multiple columns.
введите описание изображения здесь
Итак, вкратце:
- Копирование в буфер обмена -> Вставка в Excel = не сохраняет вкладки, не разбивает значения на столбцы, не работа
- Копировать в буфер обмена -> Вставка в Word (сохраняет вкладки) -> Копирование вставленной строки из Word в Excel = сохраняет вкладки, разбивает значения на столбцы
Конечно, я не хочу, чтобы пользователям приходилось вставлять строку в другое место и повторно копировать ее перед вставкой в Excel, но я довольно озадачен тем, что здесь происходит, тем более что похоже, что символы табуляции равны в строка (можно увидеть при вставке из буфера обмена в Word или из буфера обмена в vim / notepad et c). Могу ли я что-то сделать со стороны JS вещей или что-то, что можно было бы вставить в строку, чтобы помочь с этим, чтобы пользователю не приходилось с этим иметь дело?