简体   繁体   English

使用格式将 html 表格复制到剪贴板

[英]copy html table into clipboard with format

This is my table, and I wish to copy the membername + bank + amount to clipboard while I click the copy_btn这是我的表,我希望在单击 copy_btn 时将成员名 + 银行 + 金额复制到剪贴板

<tbody id="pendingDepositTable">
      <tr>
        <td>
          <div class="d-flex align-items-center">
            <div class="table-user-name ml-3">
              <p class="mb-0 font-weight-medium">9</p>
            </div>
          </div>
        </td>
        <td>
          <a href="/profile/MS00001">
            MS00001
          </a>
        </td>
        <td>test bank</td>
        <td>123</td>
        <td>
          <div class="badge badge-inverse-warning"> pending </div>
        </td>
        <td>2022-01-04 16:13:58</td>
        <td>
          <a id="copy_btn" class="btn btn-success"><i class="mdi mdi mdi-content-duplicate"></i></a>
          <a href="/updateDepositStatus?depositID=9" class="btn btn-success"><i class="mdi mdi mdi-check-all"></i></a>
          <a href="/rejectDeposit?depositID=9" class="btn btn-danger"><i class="mdi mdi-close"></i></a>
        </td>
      </tr>
    </tbody>

<script>
            $(document).on('click', '#copy_btn', function () {
              var currentRow = $(this).closest("tr");
              var memberName = currentRow.find("td:eq(1)").text();
              newMemberName = $.trim(memberName.replace(/(\r\n|\n|\r)/gm, ""));
              var bankName = currentRow.find("td:eq(2)").text();
              var amoutName = currentRow.find("td:eq(3)").text();
              navigator.clipboard.writeText(newMemberName,bankName,amoutName);

            })
          </script>

To be honest I have no idea may I do like this.老实说,我不知道我可以这样做。 the result I wish to get is after I press the copy button then I can paste in excel or google sheet like this我希望得到的结果是在我按下复制按钮之后,我可以像这样粘贴 excel 或谷歌表

在此处输入图像描述

This snippets'code is meant to save the values of a row to a comma delimited string on the clipboard when clicked within a row.当在一行中单击时,此代码片段的代码旨在将行的值保存到剪贴板上的逗号分隔字符串。 For security reasons this will only work in a top level tab/window of the browser.出于安全原因,这仅适用于浏览器的顶级选项卡/窗口。

To paste into a spreadsheet program you should check the documentation [of that program] ( for example ).要粘贴到电子表格程序中,您应该检查 [该程序] 的文档( 例如)。

Here is a small (Stackblitz) snippet to play with.这是一个小的(Stackblitz)片段 Click 'Open in new window' in the right upper corner to be able to copy to the clipboard.单击右上角的“在新窗口中打开”可以复制到剪贴板。

 document.addEventListener(`click`, handle) function handle(evt) { if (evt.target.closest(`tr`)) { const values = [...evt.target.closest(`tr`).querySelectorAll(`td`)].map(td => td.textContent).join(`,`); console.clear(); navigator.clipboard.writeText(values).then( () => alert(`Success. Try pasting...`), err => console.log(`Must be done in a top level tab/window because:\n${err}`) ); } }
 <table> <thead> <tr> <th>column1</th> <th>column2</th> <th>column3</th> </tr> </thead> <tbody> <tr> <td>value 1</td> <td>value 2</td> <td>value 3</td> </tr> <tr> <td>value 4</td> <td>value 5</td> <td>value 6</td> </tr> </tbody> </table>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM