Копировать HTML таблицу со структурой в буфер обмена в angular - PullRequest
1 голос
/ 02 февраля 2020

Я пытаюсь скопировать всю таблицу HTML с ее структурой в буфер обмена в angular. Часть копирования работает нормально, но не соответствует точному расположению таблицы.

  1. Таблица для копирования

    enter image description here

  2. Скопированная таблица

    enter image description here

Похоже, что он правильно соответствует макету заголовка, но макету данных неправильно.

Методы, используемые для достижения этой цели

selectNode(node){
    let range  =  document.createRange();
    range.selectNodeContents(node)
    let select =  window.getSelection()
    select.removeAllRanges()
    select.addRange(range)
  }

  copy(){
    this.selectNode(this.queryTable.nativeElement);
    document.execCommand('copy');    
  }

HTML:

<table id="queryTable" class="table table-responsive-sm table-hover table-outline mb-0" #queryTable>
   <thead class="text-center no-padding" style="background: #0042be;">
       <tr class="querytableheaderstyling">
           <th *ngFor="let key of debugQueryData">{{key}}</th>
       </tr>
   </thead>
   <tbody class="text-center">
       <tr *ngFor="let value of debugResult | filter : filters.searchUsersText">
           <td *ngFor="let key of debugQueryData; index as i" style="padding:0px 10px !important"><div [innerHTML]="value[key]"></div></td>
       </tr>   
   </tbody>
</table>

Что я делаю не так и как я могу заставить его работать?

PS: я не могу использовать DataTable в этом сценарии по нескольким причинам. Я использую простую таблицу на основе HTML, поэтому, пожалуйста, предоставьте решения, которые могут работать в этом сценарии.

1 Ответ

0 голосов
/ 02 февраля 2020

Проверьте необработанные значения того, что вы скопировали, похоже, у вас там есть /n или что-то в этом роде.

Попробуйте добавить nodeString.strip(), чтобы удалить любые специальные символы в ваших данных.

Или даже удалите все специальные символы из вашего скопированного ввода, как это

str.replace(/[^a-zA-Z ]/g, "")

Надеюсь, это поможет

...