Какую ссылку я должен использовать для «Data.ValueRange»? - PullRequest
1 голос
/ 03 октября 2019

Я следую руководству для записи выходных данных из Visual Studio в электронную таблицу Google.

В конце руководства есть блок кода, который я вставил в свой проект:

using OpenQA.Selenium.Support.UI;
using System;
using NUnit.Framework;
using OpenQA.Selenium;
using System.Collections;
using System.Collections.Generic;
using Google.Apis.Sheets.v4;
using Google.Apis.Auth.OAuth2;
using System.IO;
using Google.Apis.Services;
using Newtonsoft.Json;
using WikipediaTests.Foundation_Class;
using System.Web;
using System.Data;
using Google.Apis.Sheets.v4.Data;

namespace AutomationProjects
{
    [TestFixture]
    public class TestClass : TestFoundation
    {
        public class SpreadSheetConnector
        {
        //Codeblock from guide pasted here!
        }
        [Test]
        public void test1()
        {
         //Test case 1. Do XYZ...
        }
    }
}

В блоке кода, включенном в руководство , есть раздел о создании списка и передаче в него данных:

 // Pass in your data as a list of a list (2-D lists are equivalent to the 2-D spreadsheet structure)
            public string UpdateData(List<IList<object>> data)
            {
                String range = "My Tab Name!A1:Y";
                string valueInputOption = "USER_ENTERED";

                // The new values to apply to the spreadsheet.
                List<Data.ValueRange> updateData = new List<Data.ValueRange>();
                var dataValueRange = new Data.ValueRange();
                dataValueRange.Range = range;
                dataValueRange.Values = data;
                updateData.Add(dataValueRange);

                Data.BatchUpdateValuesRequest requestBody = new Data.BatchUpdateValuesRequest();
                requestBody.ValueInputOption = valueInputOption;
                requestBody.Data = updateData;

                var request = _sheetsService.Spreadsheets.Values.BatchUpdate(requestBody, _spreadsheetId);

                Data.BatchUpdateValuesResponse response = request.Execute();
                // Data.BatchUpdateValuesResponse response = await request.ExecuteAsync(); // For async 

                return JsonConvert.SerializeObject(response);
            }

Проблема заключается в том, чточто я получаю сообщение об ошибке для Data.ValueRange и Data.BatchUpdateValuesRequest:

CS0246 The type or namespace name 'Data' could not be found (are you missing a using directive or an assembly reference?)

Я попытался добавить «System.Data» в качестве ссылки на сборку для моего проекта, а затем добавил его вверхняя часть (using). Но это не устранило ошибку.

«Данные». кажется, принадлежит "Google.Apis.Sheets.v4", но я уже добавил эту ссылку в соответствии с указаниями руководства.

Единственное исправление, которое избавляет от ошибки, - это добавление Google.Apis.Sheets.v4 перед каждыми 'данными. 'например: List<Google.Apis.Sheets.v4.Data.ValueRange>

Но когда я запускаю свои тесты, вывод не экспортируется в мою электронную таблицу. Поэтому я предполагаю, что это не правильное решение. А также я предполагаю, что руководство должно было бы включить это в блок кода, если это было необходимо.

Может быть есть какая-то другая ссылка о "данных", которые мне нужны?

1 Ответ

0 голосов
/ 07 октября 2019

Согласно документации , класс ValueRange зависит от Sheets.v4.Data, поэтому вы должны добавить:

using Google.Apis.Sheets.v4.Data;

Также измените:

List<Data.ValueRange> updateData = new List<Data.ValueRange>();

до:

List<ValueRange> updateData = new List<ValueRange>();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...