Merge pull request #32676 from zaqoutabed/export-chart-data-patch-1

feat: enable user to export chart data
This commit is contained in:
Ejaaz Khan 2025-06-05 15:30:18 +05:30 committed by GitHub
commit 1444dbfbbf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -311,6 +311,46 @@ export default class ChartWidget extends Widget {
this.make_chart();
},
},
{
label: __("Export"),
action: "action-export",
handler: () => {
const data = [[this.chart_doc.chart_name]];
data.push([]);
data.push([]);
const datasets = this.data?.datasets || [];
const labels = (this.data?.labels || []).map((label) => label || "None");
if (datasets.length > 1) {
const csv_labels = [];
const csv_values = [];
labels.forEach((label, idx) => {
datasets.forEach((element) => {
csv_labels.push(`${element.name} (${label})`);
const values = element.values || [];
if (idx < values.length) {
csv_values.push(values[idx]);
} else {
csv_values.push("");
}
});
});
data.push(["", ...csv_labels]);
data.push(["", ...csv_values]);
} else if (datasets.length === 1) {
datasets.forEach((element) => {
const values = element.values || [];
if (values.length > 0) {
data.push(["", ...labels]);
data.push(["", ...values]);
}
});
} else {
data.push(["", ...labels]);
}
frappe.tools.downloadify(data, null, this.chart_doc.chart_name);
},
},
];
if (this.chart_doc.document_type) {