有一个底色为白色的图表,在导出成图片时候,要将它变更了底色后再导出,但是原图表不变
想法:
将这个图表复制到新增的一个sheet上,变更了颜色后,导出
现在的问题就是变更了颜色后,没办法导出
实现的代码:
let chart1 = sheet.charts.all()[0];
if (!chart1) {
return;
}
let copySheetName = "copySheet";
spread.addSheet(spread.getSheetCount(), new GC.Spread.Sheets.Worksheet(copySheetName));
spread.commandManager().execute({cmd: "copyFloatingObjects", sheetName: sheet.name() });
spread.commandManager().execute({cmd: "pasteFloatingObjects", sheetName: copySheetName});
let copysheet = spread.getSheetFromName(copySheetName);
let backColor = "#ffffff";
let chart = copysheet.charts.all()[0];
let chartArea = chart.chartArea();
chartArea.backColor = backColor;
chart.chartArea(chartArea);
// 这句话报错了
let canvas = chart.getHost()[0].querySelector("canvas");
let imgUrl = canvas.toDataURL("image/png");
const a = document.createElement('a')
a.href = imgUrl
a.setAttribute('download', dataKey)
a.click()
spread.removeSheetTab(copySheetName);
|