C#通过Google API写入Google Sheets单元格

本文档介绍了如何通过C#利用Google APIs控制台创建项目,启用Google Sheets API,创建凭据,并编写代码将内容写入Google Sheets的特定单元格。详细步骤包括设置项目、安装Google.Apis.Sheets.v4 NuGet包、创建解决方案以及实现写入操作。最终成功实现了向4个单元格写入数据。
摘要由CSDN通过智能技术生成

1. 创建Google APIs项目

访问Google API控制台,点创建项目
在这里插入图片描述
比如项目名称叫“Google Sheets API TEST”
在这里插入图片描述

2. 启用API和服务

确保在“Google Sheets API TEST”项目下,点“启用API和服务”
在这里插入图片描述
找到并选择“Google Sheets API”
在这里插入图片描述

3. 创建凭据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把私钥名字改成“Google Sheets API TEST.json”,回头好用些

4. 创建Google Sheets

新建Google Sheets,比如叫“Google api test”。记下ID,回头代码里要用,这里是10lYeKozl1aR1EXf-Q0Vw2rf7oDnAFN4Rs9eB5iVR3fI
在这里插入图片描述
打开Google Sheets API TEST.json,找到client_email:
在这里插入图片描述
共享“Google api test”,给serviceeditor@circular-unity-278004.iam.gserviceaccount.com编辑权限

把工作表名改为Sheet1,回头代码里要用
在这里插入图片描述

5. 创建解决方案

在VS2017创建控制台应用,解决方案叫GSAPITEST

通过NuGet安装Google API包
在这里插入图片描述
使用命令
PM> Install-Package Google.Apis.Sheets.v4

添加Visual C#类,GoogleSheetsHelper.cs,代码如下

using Google.Apis.Auth.OAuth2;
using Google.Apis.Sheets.v4;
using Google.Apis.Sheets.v4.Data;
using Google.Apis.Services;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Dynamic;

namespace GoogleSheetsHelper
{
   
    public class GoogleSheetsHelper
    {
   
        static string[] Scopes = {
    SheetsService.Scope.Spreadsheets };
        static string ApplicationName = "GoogleSheetsHelper";

        private readonly SheetsService _sheetsService;
        private readonly string _spreadsheetId;

        public GoogleSheetsHelper(string credentialFileName, string spreadsheetId)
        {
   
            var credential = GoogleCredential.FromStream(new FileStream(credentialFileName, FileMode.Open)).CreateScoped(Scopes);

            _sheetsService = new SheetsService(new BaseClientService.Initializer()
            {
   
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName,
            });

            _spreadsheetId = spreadsheetId;
        }

        public List<ExpandoObject> GetDataFromSheet(GoogleSheetParameters googleSheetParameters)
        {
   
            googleSheetParameters = MakeGoogleSheetDataRangeColumnsZeroBased(googleSheetParameters);
            var range = $"{googleSheetParameters.SheetName}!{GetColumnName(googleSheetParameters.RangeColumnStart)}{googleSheetParameters.RangeRowStart}:{GetColumnName(googleSheetParameters.RangeColumnEnd)}{googleSheetParameters.RangeRowEnd}";

            SpreadsheetsResource.ValuesResource.GetRequest request =
                _sheetsService.Spreadsheets.Values.Get(_spreadsheetId, range);

            var numberOfColumns = googleSheetParameters.RangeColumnEnd - googleSheetParameters.RangeColumnStart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值