При использовании vue для создания надстройки Excel.Как я могу вычислить свойство на основе данных в блокноте Excel? - PullRequest
0 голосов
/ 18 сентября 2018

Я хочу получить список имен листов, чтобы создать раскрывающийся список в моей надстройке. Я пытался сделать это с помощью вычисляемого свойства, но вы не можете запустить асинхронные функции для взаимодействия с Excel при вычислении свойства.Сейчас я вызываю метод при вычислении свойства, но я думаю, что он не запускает код в excel.run.В приведенном ниже коде только a и d помещаются в массив.

computed: {
    formats: function () {
      return this.getSheetNames()
    }
  },
  methods: {
    getSheetNames () {
      var sheetNames = ['a']
      window.Excel.run(async (context, sheetNames) => {
        let promise = Promise.resolve(['b'])
        let list = await promise
        sheetNames.push(list)
        sheetNames.push('c')
      })
      sheetNames.push('d')
      return sheetNames
    }

1 Ответ

0 голосов
/ 19 сентября 2018

Пожалуйста, используйте код ниже:

Window.Excel.run(async(context) {
    var sheets = context.workbook.worksheets;
    sheets.load("items/name");
    var sheetNames = [];
    return context.sync()
        .then(function () {
            if (sheets.items.length > 1) {
                console.log(`There are ${sheets.items.length} worksheets in the workbook:`);
            } else {
                console.log(`There is one worksheet in the workbook:`);
            }
            for (var i in sheets.items) {
                sheetNames.push(sheets.items[i].name); 

            }
        });
})

Для получения дополнительной информации, пожалуйста, просмотрите следующую ссылку:

Получить листы

...