Есть ли способ получить числовой формат ChartPoint с помощью Office JS? - PullRequest
2 голосов
/ 17 июня 2020

При извлечении данных точек из объекта Excel.Chart значение Chart.Point имеет формат General по умолчанию. Есть ли способ получить фактический числовой формат Chart.Point value

    const series: Excel.ChartSeriesCollection = chart.series;
        series.load("items");
        await context.sync();
        let chartData = [];
        let seriesIndex = 0;
        for (const seriesItem of series.items) {
          chartData[seriesIndex] = [];
          seriesItem.load(["points", "dataLabels"]);
          await context.sync();
          const points = seriesItem.points;
          points.load("items");
          await context.sync();
          const row = [];
          await points.items.forEach(async (point) => {
            point.load(["dataLabel", "value"]);
            await context.sync();
            row.push(point.value);
          });
          chartData[seriesIndex] = row;
          ++seriesIndex;
        }
        console.log(chartData);
      });

При попытке прочитать диаграмму, как показано ниже enter image description here And inserting a new chart from the above read data введите описание изображения здесь

1 Ответ

0 голосов
/ 18 августа 2020

К сожалению, Office JS Excel API в настоящее время не поддерживает get / set numberFormat для меток диаграмм и меток осей диаграммы. поэтому я бы посоветовал вам отправить запрос и проголосовать за него по адресу uservoice

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

Excel.run(function (ctx) { 
    var numberFormat = "d-mmm";
    var range = ctx.workbook.worksheets.getActiveWorksheet().getRange(rangeAddress);
    range.numberFormat = numberFormat;

});
...