Получить данные строки из смарт-листа в C#

Я надеюсь, что смогу получить строки данных в виде списка из определенных столбцов в C#. Таким образом, если бы была колонка человеческих высот, она перечисляла бы эти высоты в списке. Потенциально также перечислите значения x,y, например, количество яблок на определенную дату.

Я посмотрел примеры, приведенные в информации об API, и не могу найти примеров того, как это сделать - они в основном состоят из создания папок, пользователей или перечисления папок или листов или ввода информации в смарт-листах и ​​т. Д., Но ни одного из них не касается фактического получения данных.

Вот код, который я посмотрел: https://github.com/smartsheet-platform/samples/tree/master/c%23 https://github.com/smartsheet-platform/smartsheet-csharp-sdk

Но на самом деле я хотел бы вытащить данные в виде списка, а затем немного обработать их в C# для конечных пользователей, поэтому я не хочу возвращать их в смарт-таблицы.

Это единственный способ сделать это для загрузки файла в виде листа Excel с использованием API и оттуда? Я действительно хотел пропустить этот шаг, если это вообще возможно?

Я должен добавить, что я хочу использовать C# SDK для этого.

Конкретный код, который я думаю, мне нужно ввести (я думаю), это, чтобы получить лист.

// Set the Access Token
Token token = new Token();
token.AccessToken = "INSERT_YOUR_TOKEN_HERE";
long id = "INSERT SHEET ID HERE";


// Use the Smartsheet Builder to create a Smartsheet
SmartsheetClient smartsheet = new SmartsheetBuilder().SetAccessToken(
token.AccessToken).Build();

//Code to get sheet
smartsheet.Sheets().GetSheet(long id, **IEnumerable<ObjectInclusion?includes**).Rows();

Это последний параметр, я не уверен, что им нужно. В методе GetSheet говорится:

Sheet GetSheet (длинный идентификатор, IEnumerable включает)

Вот ссылка на перечисление ObjectInclusion - http://smartsheet-platform.github.io/smartsheet-csharp-sdk/html/T_Smartsheet_Api_Models_ObjectInclusion.htm

1 ответ

Решение

Вот пример, который печатает данные ячейки на каждом листе.

        // Set the Access Token
        Token token = new Token();
        token.AccessToken = "YOUR_TOKEN";

        // Use the Smartsheet Builder to create a Smartsheet
        SmartsheetClient smartsheet = new SmartsheetBuilder().SetAccessToken(token.AccessToken).Build();

        // Gets just a list of sheets (not the actual data in the sheet)
        IList<Sheet> homeSheets = smartsheet.Sheets().ListSheets();
        foreach (Sheet tmpSheet in homeSheets)
        {
            Console.WriteLine("========== New Sheet: " + tmpSheet.Name);
            // Get the sheet with the data
            Sheet sheet = smartsheet.Sheets().GetSheet((long)tmpSheet.ID, new ObjectInclusion[] { ObjectInclusion.DATA, ObjectInclusion.COLUMNS });

            int rowCount = 0;
            foreach (Row tmpRow in sheet.Rows)
            {
                Console.Write(rowCount++ + ": ");
                foreach (Cell tmpCell in tmpRow.Cells)
                {
                    Console.Write(tmpCell.Value + "|");
                }
                Console.WriteLine();
            }
        }

Чтобы ответить на некоторые другие ваши вопросы:

Это единственный способ сделать это для загрузки файла в виде листа Excel с использованием API и оттуда? Я действительно хотел пропустить этот шаг, если это вообще возможно?

C# SDK и API поддерживают возможность извлечения частей или всех данных листа. Вы не обязаны загружать лист как файл Excel для работы с данными в листе.

Я не уверен, что им нужно. В методе GetSheet говорится: Sheet GetSheet(длинный идентификатор, IEnumerable)

IEnumerable - это просто итеративная коллекция. Вы можете использовать любую коллекцию для второго параметра, который реализует этот интерфейс. Коллекция должна содержать элементы ObjectInclusion в своем списке. В моем примере я использовал массив, поскольку он реализует IList, который реализует IEnumerable.

Другие вопросы по тегам