Библиотека angular 7 и xlsx, как экспортировать массив с именем поля вместо индекса

Следуя этому вопросу на stack, и этот stackblitz, кажется, что таблица материалов не полностью экспортируется в Excel, если при разбивке на страницы не отображаются все данные.

Поэтому вместо этого я экспортирую массив целиком, но проблема в том, что в основных именах полей отображаются индексы, а не имена:

Так что вместо:

exportTable()
{
  //let data = Object.values(this.dataSource);
  const ws: xlsx.WorkSheet=xlsx.utils.table_to_sheet(data);
  const wb: xlsx.WorkBook = xlsx.utils.book_new();
  xlsx.utils.book_append_sheet(wb, ws, 'All Ind. Searched Data Export');

  /* save to file */
  xlsx.writeFile(wb, 'ExportAllData_Ind.xlsx');
}

Я изменился на:

exportTable()
{
  let data = Object.values(this.dataSource);
  const ws: xlsx.WorkSheet=xlsx.utils.json_to_sheet(data);
  const wb: xlsx.WorkBook = xlsx.utils.book_new();
  xlsx.utils.book_append_sheet(wb, ws, 'All Ind. Searched Data Export');

  /* save to file */
  xlsx.writeFile(wb, 'ExportAllData_Ind.xlsx');
}

Проблема в том, что экспортированный Excel устанавливает имена полей в индексы, а затем добавляет в конце настоящие имена полей:

введите описание изображения здесь

Я знаю, что это связано с массивами, но как я могу экспортировать массив только с частью имени поля.


person alim1990    schedule 24.12.2018    source источник


Ответы (1)


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

exportTable()
  {
    let newArray:any[]=[];
    let data = Object.values(this.allsearched);
      Object.keys(data).forEach((key, index)=>{
        newArray.push({
          'Ind. ID': data[key].individual_id,
          'HH ID': data[key].hh_id,
          'Name(en)': data[key].ind_first_name_en+' '+data[key].ind_last_name_en,
          'Name(ar)': data[key].ind_first_name_ar+' '+data[key].ind_last_name_ar,
          'UID': data[key].uId,
          'Gender': data[key].ind_gender,
          'D.O.B': data[key].dob,
          'Head Of HH': data[key].head_of_hh,
          'Phone Number': data[key].phone,
          'Status': data[key].ind_status,
          'User ID': data[key].user_id
        })
      })


    const ws: xlsx.WorkSheet=xlsx.utils.json_to_sheet(newArray);
    const wb: xlsx.WorkBook = xlsx.utils.book_new();
    xlsx.utils.book_append_sheet(wb, ws, 'All Ind. Searched Data Export');

    /* save to file */
    xlsx.writeFile(wb, 'ExportAllData_Ind.xlsx');
  }
person alim1990    schedule 24.12.2018