复制可粘贴为 table in word、excel 等的文本

Copying text that can be pasted as a table in word, excel, etc

我不确定这是否考虑将文本数据转换为富文本格式,但我想从 table 或一系列 div(后者是我正在使用的),并将其放入可以轻松粘贴到 Word、Outlook 或 Excel 中的格式,作为 table.

我还没有想出我将如何循环遍历列表以获取所有可能的条目,但在伪代码中,以下是我想要做的:

var currentLine;    // This is the current line used in the following loop:
for (<each list item found>) {
    currentLine = `${box1A} ${box1B}`;
    <append currentLine to a new line in a textarea element>;
}
<select the text in the textarea element>;
document.execCommand('copy');

最终,我将实际使用的 javascript 将导致新行被粘贴到新行中(这很好),但是,这两个字符串将位于 came 单元格中。请参阅以下示例:

+------------+-------+
| box1A box1B|       |
+------------+-------+
| box2A box2B|       |
+------------+-------+
| box3A box3B|       |
+------------+-------+
| etc.. etc..|       |
+------------+-------+

如何确保 box1A 最终位于一个单元格中,而 box1B 将自动粘贴到同一行的第二个单元格中?请参阅以下我想要的示例:

+-------+-------+
| box1A | box1B |
+-------+-------+
| box2A | box2B |
+-------+-------+
| box3A | box3B |
+-------+-------+
| etc.. | etc.. |
+-------+-------+

根据我目前的发现,值由制表符分隔。在我提供的示例中,为了使 boxAboxB 与同一行的不同单元格对齐,您可以对字符串使用以下设置:

var row = `${box1A}\t${box1B}\n${box2A}\t${box2B}\n${box3A}\t${box3B}`

一旦复制到剪贴板并粘贴到 Excel:

,上述行的最终结果就会产生
+-------+-------+
| box1A | box1B |
+-------+-------+
| box2A | box2B |
+-------+-------+
| box3A | box3B |
+-------+-------+

\t 表示 Horizontal Tabulator,将自动在下一个单元格中输入下一个值。

\n 表示 New Line,将自动在下一个单元格中输入下一个值。