我尝试使用以下代码从我创建的数据透视表构建图表:
var requests = [{
"updateCells": {
"rows": {
"values": [{
"pivotTable": {
"source": {
"sheetId": firstSheetId,
"startRowIndex": 0,
"startColumnIndex": 0,
"endRowIndex": ranges.length,
"endColumnIndex": question.length + 3
},
"rows": [{
"sourceColumnOffset": 2,
"showTotals": false,
"sortOrder": "ASCENDING",
"valueBucket": {
"buckets": [
{
"stringValue": question[i-3]
}
]
}
}
],
"columns": [
{
"sourceColumnOffset": i,
"sortOrder": "ASCENDING",
"showTotals": false
}
],
"values": [
{
"summarizeFunction": "COUNTA",
"sourceColumnOffset": i
}
],
"valueLayout": "HORIZONTAL"
}
}
]
},
"start": {
"sheetId": fourthSheetId,
"rowIndex": index,
"columnIndex": 0
},
"fields": "pivotTable"
}
}
];
var batchUpdateRequest = Sheets.newBatchUpdateSpreadsheetRequest();
batchUpdateRequest.requests = requests;
// Add additional requests (operations)
var result = Sheets.Spreadsheets.batchUpdate(batchUpdateRequest, ss.getId());
然后,我尝试使用创建的数据透视表使用以下代码制作图表,但图表图例标签不会出现在图表中。但是,当用鼠标选择数据透视表并单击"插入 - >图表"从Google电子表格菜单中,标签显示正常。
var textStyleBuilder = Charts.newTextStyle().setColor('#0000FF');
var style = textStyleBuilder.build();
for (i = 0; i < tableDim.length; i++) {
/* Get pivot table dimensions */
var sRow = (tableDim[i].startRow);
var nRow = (tableDim[i].endRow - tableDim[i].startRow);
var sCol = (tableDim[i].startCol);
var nCol = (tableDim[i].endCol - tableDim[i].startCol);
secondSheet.showSheet();
var currentRange = secondSheet.getDataRange().offset(sRow, sCol, nRow, nCol );
/* Build the chart */
var chart = secondSheet.newChart()
.asBarChart()
.setStacked()
.setLegendTextStyle(style)
.setLegendPosition(Charts.Position.RIGHT)
.addRange(currentRange)
.setXAxisTitle("Values")
.setYAxisTitle("Names")
.setPosition(sRow, nCol + sCol + 1, nRow + sRow, 2*(nCol + sCol))
.setOption("title", question[i])
.build();
secondSheet.insertChart(chart);
}
我在这里做错了什么?
这是我当前的图表,其中标签文字没有出现:
答案 0 :(得分:0)
我找到问题的根源,我在数据范围偏移中出现了一个一个错误。
var currentRange = secondSheet.getDataRange().offset(sRow - 1 , sCol, nRow, nCol );
我将“ - 1 ”添加到 sRow 值后,图表中会显示正确的数据标签。