如何使用C#在Google电子表格上创建图表?
经过努力,我终于创建了一个C程序,能够从谷歌电子表格中读取、添加、更新和删除单元格。现在我想用我在那里的数据创建一个图表,但我不能这样做 我对此做了很多研究。我发现所有的东西(我认为)都需要这样做,我发现了一些使用python和javascript的例子,但由于某种原因,我无法将其组合到C#中 有人这样做过吗 答复: 为了创建图表并将其添加到Google工作表中,需要向包含图表信息的API发出如何使用C#在Google电子表格上创建图表?,c#,google-sheets-api,C#,Google Sheets Api,经过努力,我终于创建了一个C程序,能够从谷歌电子表格中读取、添加、更新和删除单元格。现在我想用我在那里的数据创建一个图表,但我不能这样做 我对此做了很多研究。我发现所有的东西(我认为)都需要这样做,我发现了一些使用python和javascript的例子,但由于某种原因,我无法将其组合到C#中 有人这样做过吗 答复: 为了创建图表并将其添加到Google工作表中,需要向包含图表信息的API发出batchUpdate请求 详细说明: 您需要做的第一件事是构建请求主体,指定您需要的图表的所有相关部分
batchUpdate
请求
详细说明:
您需要做的第一件事是构建请求主体,指定您需要的图表的所有相关部分。这包括图表的类型(柱状图或饼图)、轴、数据源、图表的位置等。有关这方面的完整信息可在中找到
一旦构建了请求对象,就可以通过构造包含先前构造的所有信息的BatchUpdateRequest
向API发出BatchUpdateRequest
请求
构建请求:
请求是一个列表对象,在添加到BatchUpdateSpreadsheetRequest
对象之前,需要先构建该对象:
var addChartRequest=new addChartRequest();
addChartRequest.ChartData=//您的数据
addChartRequest.ChartSourceRange=//您的范围
addChartRequest.ChartSpec=//您的规范
//我已经在下面列出了所有这些课程的参考资料,请查看
//并添加所需的结构
BatchUpdateSpreadsheetRequest chartRequest=新的BatchUpdateSpreadsheetRequest();
chartRequest.Requests=新列表();
chartRequest.Requests.Add(新请求
{
//按照柱状图或饼图的结构在此处生成列表请求
});
和类似,但需要稍有不同的参数
进行API调用:
构建请求本身后,需要调用batchUpdate
方法:
var ssID=“”
var batchUpdateReq=service.Spreadsheets.BatchUpdate(chartRequest,ssID)
batchUpdateRequest.Execute();
我希望这对你有帮助
参考资料:
- :
- :
var sheetId=GetSheetId(服务、电子表格ID、googleSheetParameters.SheetName);
IList basicChartAxes=new List();
基本坐标轴。添加(
新BasicChartAxis()
{
Position=“底部_轴”,
Title=xName
});
基本坐标轴。添加(
新BasicChartAxis()
{
Position=“左_轴”,
Title=yName
});
//B1-B10
IList yRanges=新列表();
Y范围。添加(
新GridRange()
{
SheetId=SheetId,
StartRowIndex=0,
EndRowIndex=9,
StartColumnIndex=1,
EndColumnIndex=2
});
//A1-A10
IList xRanges=新列表();
xRanges.Add(
新GridRange()
{
SheetId=SheetId,
StartRowIndex=0,
EndRowIndex=9,
StartColumnIndex=0,
EndColumnIndex=1
});
IList basicChartSeries=新列表();
添加(新的basicChartSeries()
{
系列=新图表数据()
{
SourceRange=新图表SourceRange()
{
源=Y范围
}
},
TargetAxis=“左_轴”
});
IList basicChartDomains=新列表();
添加(新的BasicChartDomain()
{
域=新图表数据()
{
SourceRange=新图表SourceRange()
{
源=xRanges
}
}
});
var chartSpec=new chartSpec()
{
Title=googleSheetParameters.SheetName,
BasicChart=新的BasicChartSpec()
{
ChartType=“COLUMN”,
LegendPosition=“底部\图例”,
轴=基本轴,
域=基本域,
系列=基本系列,
人头数=1
}
};
BatchUpdateSpreadsheetRequest chartRequest=新的BatchUpdateSpreadsheetRequest();
var addChartRequest=新的addChartRequest
{
图表=新的嵌入式图表()
{
位置=新的EmbeddedObjectPosition()
{
//如果在Spredsheet中使用现有图纸
叠加位置=新叠加位置
{
//在现有图纸内设置位置
AnchorCell=新网格坐标()
{
SheetId=SheetId,
ColumnIndex=2,
行索引=0
}
}
},
规格=图表规格
}
};
chartRequest.Requests=新列表();
添加(新请求(){AddChart=addChartRequest});
var batchUpdateReq=service.Spreadsheets.BatchUpdate(chartRequest,spreadsheetId).Execute();
为什么要投否决票?你能提供一些反馈或要求澄清吗?你能提供你尝试过的代码并解释什么不起作用吗?有关于如何创建图表的信息,需要作为batchUpdate的主体发送。我还没有为图表编写任何代码,否则我会附加它。只是阅读并熟悉可能的方法,但正如我所说,我没有运行任何方法,因为我真的不知道/无法理解如何做的结构。这取决于你想制作什么样的图表,什么样的数据