`` `XLSX.writeFile``` не загружает книгу в моей файловой системе - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь загрузить json как xlsx, используя Sheetjs.Я успешно могу создать worksheet и workbook, но функция ẁriteFile, похоже, ничего не делает с workbook.Любая помощь будет оценена.Ниже мой код:

  <v-card color="primary" dense>
    <v-card-title class="white--text pa-2 min-height">
      <h3 class="text-xs-center px-2" data-test-id="DataTableTitle">{{ title(tableId) }}</h3>

      <v-spacer />

      <v-btn
        v-for="action in headerActions(tableId)"
        :key="action.title"
        data-test-id="action-button"
        @click="callActionOrRouteTo(action, tableId)"
      >
        {{ action.title }}
      </v-btn>

      <v-btn @click="onExport">EXPORT TO XLSX</v-btn>
    </v-card-title>
  </v-card>
import { mapGetters } from 'vuex';
import DataTableRouting from '@/components/data-tables/DataTableRouting.vue';
import * as XLSX from 'xlsx';

export default {
  name: 'DataTableTitleBar',
  extends: DataTableRouting,
  props: {
    tableId: {
      type: Number,
      required: true,
    },
  },
  computed: {
    ...mapGetters({
      title: 'dataTables/title',
      headerActions: 'dataTables/headerActions',
      columns: 'dataTables/columns',
      dataItems: 'dataTables/tableItems',
    }),
  },
  data: () => ({
    jsonData: null,
  }),
  methods: {
    exportToCSV(dataItems) {
      this.jsonData = dataItems.map(row => {
        const outputRow = {};
        Object.entries(row).forEach(([key, column]) => {
          outputRow[key] = column.value;
        });
        console.log(outputRow);
        return outputRow;
      });
    },
    onExport() {
      this.exportToCSV(this.dataItems(this.tableId));
      console.log(this.jsonData);
      const animalWS = XLSX.utils.json_to_sheet(this.jsonData);
      console.log(animalWS);
      const wb = XLSX.utils.book_new();
      console.log(wb);
      XLSX.utils.book_append_sheet(wb, animalWS, 'animals');
      XLSX.writeFile(wb, 'book.xlsx', { type: 'file' });
    },
  },
};

Я ожидаю, что при нажатии кнопки файл xlsx должен быть автоматически загружен.

1 Ответ

0 голосов
/ 05 апреля 2019

Я разобрался в проблеме.Это были настройки моего браузера, которые блокировали загрузку.Но теперь это работает!

...