Your search did not match any results.
Charts

Export Several Charts

The DevExpress.viz.exportWidgets(widgetInstances, options) method allows you to export several charts to a single image or document. The widgetInstances parameter accepts an array with the following format:

[
    [ widgetInstance0_1, widgetInstance0_2, ..., widgetInstance0_N ],
    [ widgetInstance1_1, widgetInstance1_2, ..., widgetInstance1_M ],
    ...
    [ widgetInstanceP_1, widgetInstanceP_2, ..., widgetInstanceP_R ]
]

Each nested array contains widget instances that should be in the same row in the exported document. In this demo, chartInstance and pieChartInstance occupy the only row in the document.

The options parameter accepts an object whose fields allow you to configure export options. In this demo, we specify the fileName and format. Refer to the method description for information on other available fields.

Copy to CodeSandBox
Apply
Reset
<template> <div id="chart-demo"> <div class="charts"> <DxChart id="chart" ref="chart" :data-source="goldMedals" :rotated="true" title="Olympic Gold Medals in 2008" > <DxSeries type="bar" argument-field="country" value-field="medals" color="#f3c40b" > <DxLabel :visible="true"/> </DxSeries> <DxLegend :visible="false"/> </DxChart> <DxPieChart id="pieChart" ref="pieChart" :data-source="allMedals" palette="Harmony Light" title="Total Olympic Medals\n in 2008" > <DxPieSeries argument-field="country" value-field="medals" > <DxPieLabel :visible="true"> <DxConnector :visible="true"/> </DxPieLabel> </DxPieSeries> </DxPieChart> </div> <div class="controls-pane"> <DxButton id="export" :width="145" icon="export" type="default" text="Export" @click="onClick()" /> </div> </div> </template> <script> import DxChart, { DxSeries, DxLabel, DxLegend } from 'devextreme-vue/chart'; import DxPieChart, { DxSeries as DxPieSeries, DxLabel as DxPieLabel, DxConnector } from 'devextreme-vue/pie-chart'; import { exportWidgets } from 'devextreme/viz/export'; import DxButton from 'devextreme-vue/button'; import { allMedals, goldMedals } from './data.js'; export default { components: { DxChart, DxSeries, DxLabel, DxLegend, DxPieChart, DxPieSeries, DxPieLabel, DxConnector, DxButton }, data() { return { allMedals, goldMedals }; }, methods: { onClick() { const chartInstance = this.$refs.chart.instance; const pieChartInstance = this.$refs.pieChart.instance; exportWidgets([[chartInstance, pieChartInstance]], { fileName: 'chart', format: 'PNG' }); } } }; </script> <style> #chart-demo { height: 460px; } .charts { width: 820px; margin: 0 auto; height: 374px; margin-bottom: 40px; font-size: 0; } #chart, #pieChart{ width: 395px; height: 100%; display: inline-block; vertical-align: top; } #chart { margin-right: 30px; } .controls-pane { text-align: center; } </style>
import Vue from 'vue'; import App from './App.vue'; new Vue({ el: '#app', components: { App }, template: '<App/>' });
<!DOCTYPE html> <html> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/20.1.4/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/20.1.4/css/dx.light.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import('./index.js'); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"> </div> </div> </body> </html>
export const allMedals = [{ country: 'USA', medals: 110 }, { country: 'China', medals: 100 }, { country: 'Russia', medals: 71 }, { country: 'UK', medals: 47 }, { country: 'Australia', medals: 46 }, { country: 'Germany', medals: 41 }, { country: 'France', medals: 41 }, { country: 'South Korea', medals: 31 }]; export const goldMedals = [{ country: 'China', medals: 51 }, { country: 'USA', medals: 36 }, { country: 'Russia', medals: 22 }, { country: 'UK', medals: 19 }, { country: 'Germany', medals: 16 }, { country: 'Australia', medals: 14 }, { country: 'South Korea', medals: 13 }, { country: 'France', medals: 7 }];
System.config({ transpiler: 'plugin-babel', meta: { '*.vue': { loader: 'vue-loader' }, }, paths: { 'npm:': 'https://unpkg.com/' }, map: { 'vue': 'npm:vue@2.6.3/dist/vue.esm.browser.js', 'vue-loader': 'npm:dx-systemjs-vue-browser@latest/index.js', 'devextreme': 'npm:devextreme@20.1', 'devextreme-vue': 'npm:devextreme-vue@20.1', 'jszip': 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.7/dist/quill.js', 'devexpress-diagram': 'npm:devexpress-diagram@1.0.5', 'devexpress-gantt': 'npm:devexpress-gantt@1.0.3', 'plugin-babel': 'npm:systemjs-plugin-babel@0/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0/systemjs-babel-browser.js' }, packages: { 'devextreme-vue': { main: 'index.js' }, 'devextreme': { defaultExtension: 'js' }, 'devextreme/events/utils': { main: 'index' }, 'devextreme/events': { main: 'index' }, }, babelOptions: { sourceMaps: false, stage0: true } });