Office.js Excel: форматирование и запись в видимые ячейки - PullRequest
0 голосов
/ 04 июня 2019

Есть ли способ отформатировать Excel.RangeView? нравится не только устанавливать значения, но и менять цвет фона и т. д.? Я использую этот код, чтобы установить одинаковое значение для всех ячеек, и мне нужно выделить их красным цветом

const range = context.workbook.getSelectedRange().getVisibleView();
range.load(['rowCount', 'columnCount']);
await context.sync();

range.set({
  values: Array(range.rowCount)
    .fill(0)
    .map(() =>
      Array(range.columnCount)
        .fill(0)
        .map(() => value)
    ),
  // TODO: investigate why this is not working:
  // format: {
  //    font: {
  //        color: 'red',
  //    },
  // },
});

Ответы [ 2 ]

1 голос
/ 04 июня 2019

Вы перепутали объекты Range и RangeView. Переменная, которую вы называете range, на самом деле является объектом RangeView. RangeView.set может устанавливать только свойства RangeView. Объект RangeView не имеет свойства format. Попробуйте преобразовать RangeView в Range с помощью Worksheet.getRange(myRangeView.cellAddresses).

1 голос
/ 04 июня 2019

Если я правильно понимаю ваш вопрос, я думаю, что вы хотите изменить цвет фона диапазона и цвета шрифта, поэтому вы можете использовать следующий API

range.format.fill.color

range.format.font.color

    range.format.fill.color = "#4472C4";
    range.format.font.color = "white";

Дополнительную информацию можно найти по этому адресу: https://docs.microsoft.com/en-us/javascript/api/excel/excel.rangefill?view=office-js

...