2014-12-04 9 views
5

Ich hoffe, in der Lage sein, Zeilen von Daten als eine Liste aus bestimmten Spalten in C# abrufen. Wenn also eine Spalte mit Personenhöhen vorhanden wäre, würde diese Höhe in einer Liste aufgeführt. Möglicherweise auch x, y Werte sagen die Anzahl der Äpfel an einem bestimmten Datum.Abrufen von Zeilendaten aus Smartsheet in C#

Ich habe die Beispiele auf der API-Informationen untersucht und kann keine Beispiele finden, wie dies zu tun - sie bestehen meist aus Erstellen von Ordnern, Benutzern oder Auflistung von Ordnern oder Blättern oder Eingabe von Informationen auf Smartsheets usw., aber keine auf tatsächlich Daten abrufen.

Hier ist der Code ich ausgesehen haben: https://github.com/smartsheet-platform/samples/tree/master/c%23 https://github.com/smartsheet-platform/smartsheet-csharp-sdk

Aber ich möchte die Daten tatsächlich herausziehen als eine Liste und dann Benutzer ein Bit in C# für Ende verarbeiten, so bin ich nicht wollen um es wieder in Smartsheets zu bringen.

Ist der einzige Weg dies zu tun, um Datei als Excel-Tabelle mit der API herunterladen und von dort aus gehen? Ich wollte diesen Schritt wirklich überspringen, wenn überhaupt möglich?

Ich sollte hinzufügen, ich möchte das C# SDK verwenden, um dies zu tun.

Der spezifische Code, den ich eingeben muss (denke ich), ist dies, um das Blatt zu bekommen.

// 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(); 

Es ist der letzte Parameter Ich bin mir nicht sicher, was sie brauchen. Es heißt in der GetSheet Methode:

Blatt GetSheet ( long id, IEnumerable umfasst )

Hier ist ein Link auf die ObjectInclusion Enumeration ist - http://smartsheet-platform.github.io/smartsheet-csharp-sdk/html/T_Smartsheet_Api_Models_ObjectInclusion.htm

Antwort

5

Hier ist ein Beispiel, das die Zellendaten druckt in jedem Blatt.

 // 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(); 
      } 
     } 

, um einige Ihrer Fragen zu beantworten:

ist der einzige Weg, dies zu tun Datei als Excel-Datei zum Download mithilfe der API und von dort aus gehen? Ich wollte diesen Schritt wirklich überspringen, wenn überhaupt möglich?

Die C# SDK und die API beide unterstützen die Möglichkeit, Teile oder die Gesamtheit der Blattdaten abzurufen. Sie müssen das Blatt nicht als Excel-Datei herunterladen, um mit den Daten im Blatt arbeiten zu können.

Ich bin mir nicht sicher, was sie brauchen. Es heißt in der GetSheet Methode: Blatt GetSheet (long id, IEnumerable <ObjectInclusion>)

Ein IEnumerable nur eine Sammlung, die iterable ist. Sie können eine beliebige Sammlung für den zweiten Parameter verwenden, der diese Schnittstelle implementiert. Die Sammlung sollte ObjectInclusion Elemente in der Liste enthalten. In meinem Beispiel habe ich ein Array verwendet, das ein IList implementiert, das ein IEnumerable implementiert.

+1

Vielen Dank Brett – Danrex