复制表的一部分

时间:2018-03-18 06:45:22

标签: javascript html angular html-table

我有一个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");

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

1 个答案:

答案 0 :(得分:1)

<thead>代码中使用<tbody><table>,只选择<tbody>而不是选择整个表格。

修改

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, 

更改行后使用此新脚本。