poi cloneSheet, похоже, не делает глубокую копию Charts - PullRequest
0 голосов
/ 19 января 2019

У меня есть рабочий лист в пои с 11 графиками.Я хочу сделать клон, обновить основные данные и переделать графики.Мой код выглядит следующим образом.Когда я выполняю код, и клонированная страница, и исходная страница показывают одну и ту же диаграмму, хотя я меняю только источник данных на клонированной странице.Это заставляет меня подозревать, что диаграммы на двух страницах - это один и тот же объект, и клон не сделал глубокую копию.Я не вижу методов в POI для клонирования диаграмм - кто-нибудь делает это, и если да, то как?

CellRangeAddress region = new CellRangeAddress(1, 1, FIRST_COLUMN, LAST_COLUMN);
 XDDFCategoryDataSource categoriesData = XDDFDataSourcesFactory.fromStringCellRange(sheet, region);

    List<XDDFChartData> chartSeries = chart.getChartSeries();
    for (XDDFChartData chartSery : chartSeries) {
        List<XDDFChartData.Series> series = chartSery.getSeries();
        for (XDDFChartData.Series series1 : series) {
              int row = ChartToLine.get(name) - 1;
                XDDFNumericalDataSource<Double> valuesData2 = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(row, row, FIRST_COLUMN, LAST_COLUMN));
                series1.replaceData(categoriesData, valuesData2);
         }
        chart.plot(chartSery);
     }
...