【问题标题】:Copy part of table复制表格的一部分
【发布时间】:2018-08-26 23:09:39
【问题描述】:

我有一个要复制到剪贴板的 HTML 表格。
但是,我不想复制标题行,只复制表格的其余部分。
这是表格:

<table style="width:100%" #table>
    <tr>
      <th class="border"></th>
      <th class="border"></th>
      <th class="border"></th>
      <th class="border"></th>
      <th class="border"></th>
      <th class="border"></th>
    </tr>
    <ng-template ngFor let-table [ngForOf]="mCase.Tables" let-i="index">
      <ng-template ngFor let-row [ngForOf]="table.rows" let-rowIndex="index">
        <tr>
          <td>
           ....
          </td>
        </tr>
      </ng-template>
    </ng-template>
  </table>

这是我用来复制它的 Javascript:

 @ViewChild('table') table: ElementRef;

 var body = document.body as HTMLElement, range, sel;
if (document.createRange && window.getSelection) {
  range = document.createRange();
  sel = window.getSelection();
  sel.removeAllRanges();
  try {
    range.selectNodeContents(this.table.nativeElement);
    sel.addRange(range);
  } catch (e) {
    range.selectNode(this.table.nativeElement);
    sel.addRange(range);
  }
} else if (body.createTextRange) {
  range = body.createTextRange();
  range.moveToElementText(this.table.nativeElement);
  range.select();
}

document.execCommand("Copy");

此代码复制所有表格。
如何复制没有标题行的表格?

【问题讨论】:

标签: javascript html angular html-table


【解决方案1】:

在&lt;table&gt; 标签中使用&lt;thead&gt; 和&lt;tbody&gt;,只选择&lt;tbody&gt;,而不是选择整个表格。

编辑

DataTables 解决了这个问题 求详细解释here

您可以查看DataTables 的 youtube 链接

这里也选择了标题。但是,如果您不想这样做,您可以根据自己的方便进行更改。 您应该操作以下脚本

https://cdn.datatables.net/buttons/1.5.1/js/buttons.html5.min.js

exportOptions: {},
        fieldSeparator: "\t",
        fieldBoundary: "",
        header: !0,
        footer: !1,
        title: "*",
        messageTop: "*",
        messageBottom: "*"

你可以从第 286-293 行找到这些 由于您不希望标题将其更改为

 header: !1, 

换行后使用这个新脚本。

【讨论】:

  • 谢谢,但它现在仅将其复制为纯文本,而之前将其复制为表格。
  • 也许有办法删除一些选定的范围?
  • 复制整个表格。这是否意味着表格边框?
  • 不,只是内容。我想将它粘贴到 Excel 中,Excel 单元格中的每个单元格。我的代码以这种方式复制表格。如果我只复制 tbody,它会将其粘贴为文本。
  • 可能我没有注意到 DataTables 默认情况下也会复制标题。所以我编辑了我的答案,以便只选择正文部分(没有标题)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 1970-01-01
  • 1970-01-01
  • 2010-10-29
相关资源
最近更新 更多