Javascript 如何使用GoogleApps脚本在图表服务中使用甜甜圈孔生成3D图表?
在Google Sheets中创建图表时,可以通过对话框创建带有甜甜圈孔的3D饼图。如果您尝试使用图表服务进行此操作,它将不起作用,而且在这方面非常直接: 不能组合pieHole和is3D选项;如果您这样做,pieHole将被忽略 现在使用以下代码Javascript 如何使用GoogleApps脚本在图表服务中使用甜甜圈孔生成3D图表?,javascript,google-apps-script,google-sheets,charts,Javascript,Google Apps Script,Google Sheets,Charts,在Google Sheets中创建图表时,可以通过对话框创建带有甜甜圈孔的3D饼图。如果您尝试使用图表服务进行此操作,它将不起作用,而且在这方面非常直接: 不能组合pieHole和is3D选项;如果您这样做,pieHole将被忽略 现在使用以下代码 函数myOTherFunction(){ const sheets=sheets.Spreadsheets.get(在此处插入文档ID); 用于(一页接一页){ const charts=sheet.charts; 如果(图表) for(让我们来看看
函数myOTherFunction(){
const sheets=sheets.Spreadsheets.get(在此处插入文档ID);
用于(一页接一页){
const charts=sheet.charts;
如果(图表)
for(让我们来看看图表){
Logger.log(“工作表%s,图表%s,JSON'%s',Sheet.properties.title,String(Chart.chartId),JSON.stringify(Chart.spec));
}
}
}
对于其中一个图表,我得到了以下JSON
{
“隐藏维度策略”:“跳过隐藏的行和列”,
“饼图”:{
“域”:{
“源范围”:{
“资料来源”:[{
“endRowIndex”:21,
“sheetId”:1962284759,
“startRowIndex”:11,
“startColumnIndex”:12,
“endColumnIndex”:13
}
]
}
},
“三维”:没错,
“pieHole”:0.5,
“系列”:{
“源范围”:{
“资料来源”:[{
“startRowIndex”:11,
“endRowIndex”:21,
“startColumnIndex”:11,
“endColumnIndex”:12,
“sheetId”:1962284759
}
]
}
}
},
“字幕文本格式”:{
“foregroundColorStyle”:{
“RGB颜色”:{
“红色”:0.4,
“绿色”:0.4,
“蓝色”:0.4
}
},
“字体大小”:30,
“前底色”:{
“红色”:0.4,
“蓝色”:0.4,
“绿色”:0.4
},
“fontFamily”:“衬线”
},
“fontName”:“serif”,
“副标题”:“没有名字”
}
有趣的是,在pieChart
中有一个设置“三维”:true
,我希望它类似于前面提到的文档中不能使用的is3D
设置。那么它去了哪里?下面的方法不起作用
var chart=Charts.newPieChart()
.setDataTable(数据)
.setOption('subtitle','Sw')
.setOption('subtitleTextStyle.fontSize',30)
.setOption('PieSicleTextStyle.fontSize',12)
.setOption('PieSicleTextStyle.bold',true)
.setOption('sliceVisibilityThreshold',0)
.setOption('pieHole',0.3)
.setOption('legend.position','labeled')
.setOption('PieSicleText','label')
.setOption('pieChart.3d',true)
.设置尺寸(595300)
.build();
这就是我撞到砖墙的地方。还有
is3D
和pieChart.3dimensional
,我仍然无法通过编程方式创建带有甜甜圈孔的三维饼图!。解决方案是什么?我相信你的目标如下
- 您希望使用Google Apps脚本创建三维饼图
position
属性
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheetId = ss.getSheetByName("Sheet1").getSheetId();
const resource = {
"requests": [
{
"addChart": {
"chart": {
"spec": {
"hiddenDimensionStrategy": "SKIP_HIDDEN_ROWS_AND_COLUMNS",
"pieChart": {
"domain": {
"sourceRange": {
"sources": [
{
"endRowIndex": 5,
"sheetId": sheetId,
"startRowIndex": 0,
"startColumnIndex": 0,
"endColumnIndex": 1
}
]
}
},
"threeDimensional": true,
"pieHole": 0.5,
"series": {
"sourceRange": {
"sources": [
{
"startRowIndex": 0,
"endRowIndex": 5,
"startColumnIndex": 1,
"endColumnIndex": 2,
"sheetId": sheetId
}
]
}
}
},
"subtitleTextFormat": {
"foregroundColorStyle": {
"rgbColor": {
"red": 0.4,
"green": 0.4,
"blue": 0.4
}
},
"fontSize": 30,
"foregroundColor": {
"red": 0.4,
"blue": 0.4,
"green": 0.4
},
"fontFamily": "serif"
},
"fontName": "serif",
"subtitle": "No Name"
},
"position": { // <--- Added
"overlayPosition": {
"anchorCell": {
"sheetId": 0,
"rowIndex": 0,
"columnIndex": 3
}
}
}
}
}
}
]
};
Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
}
函数myFunction(){
const ss=SpreadsheetApp.getActiveSpreadsheet();
const sheetId=ss.getSheetByName(“Sheet1”).getSheetId();
常量资源={
“请求”:[
{
“addChart”:{
“图表”:{
“规格”:{
“隐藏维度策略”:“跳过隐藏的行和列”,
“饼图”:{
“域”:{
“源范围”:{
“资料来源”:[
{
“endRowIndex”:5,
“sheetId”:sheetId,
“startRowIndex”:0,
“startColumnIndex”:0,
“endColumnIndex”:1
}
]
}
},
“三维”:没错,
“pieHole”:0.5,
“系列”:{
“源范围”:{
“资料来源”:[
{
“startRowIndex”:0,
“endRowIndex”:5,
“startColumnIndex”:1,
“endColumnIndex”:2,
“sheetId”:sheetId
}
]
}
}
},
“字幕文本格式”:{
“foregroundColorStyle”:{
“RGB颜色”:{
“红色”:0.4,
“绿色”:0.4,
“蓝色”:0.4
}
},
“字体大小”:30,
“前底色”:{
“红色”:0.4,
“蓝色”:0.4,
“绿色”:0.4
},
“fontFamily”:“衬线”
},
“fontName”:“serif”,
“副标题”:“没有名字”
},
“立场”:{//