2017-03-23 2 views
1

Ich habe gelesen, wie ich mein C# Windows Form aus Google Tabellen lesen kann.C# und Google Tabellen

Ich denke, dass ich ein gutes Verständnis davon habe, wie man liest und schreibt, aber ich bin unglaublich verloren, wie man anfängt.

Ich gehe davon aus, dass die Schritte sind wie folgt:
1. (Erledigt) Holen Sie sich das API ein: https://developers.google.com/sheets/api/quickstart/dotnet

2. (Fest hier), um das Blatt zu laden. Ich habe keine Ahnung, wie ich das machen soll. Ich stecke darauf fest. Ich konnte auf der API-Seite keinen Leitfaden finden, wie ein Blatt tatsächlich geladen werden kann. Außerdem konnte ich kein aktuelles Codebeispiel online finden, um herauszufinden, wie das gleiche erreicht werden kann.

3. Werte lesen/schreiben/aktualisieren.





Auf dieser Seite: https://developers.google.com/sheets/api/guides/concepts am Ende scheint es mit GET vorzuschlagen und dem Blatt URL dann das Blatt zu bekommen. Wenn ich jedoch GET verwende, erhalte ich diesen Fehler: Der Typ oder Namespace 'GET' konnte nicht gefunden werden.


Hier ist mein Code so weit:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WindowsFormsApplication2 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?ranges=A1:C10&fields=properties.title,sheets(sheetProperties,data.rowData.values(effectiveValue,effectiveFormat)) 

     } 
    } 
+3

Dies hat nichts mit Google Tabellen zu tun. Der Compiler Fehler sagt, dass Sie vergessen haben, eine 'GetCredential()' Methode in Ihrem Formular –

+0

@ PJvG Vielen Dank für Ihre Antwort! Ich habe gerade die gesamte Anwendung verschrottet, seit ich wirklich verwirrt war und von Null angefangen habe. Ich werde den Originalbeitrag aktualisieren, um zu zeigen, auf welchem ​​Schritt ich eigentlich stehe. – lolikols

+1

@lolikols nicht unhöflich zu klingen, aber das, woran Sie hängen bleiben, ist nichts, was spezifisch für das Lesen/Schreiben von Google Tabellen ist, sondern eher ein Mangel an einfacher C# -Syntax. Es würde wahrscheinlich mehr Sinn machen, wenn du etwas mehr Zeit damit verbringst, die Sprache durch Tutorials und Bücher zu lernen, sonst wirst du wahrscheinlich immer wieder auf dieselben Probleme stoßen. – DrewJordan

Antwort

1

die Linie GET https://sheets... ist also Code eine HTTP-Anforderung und nicht gültig C#.

Was Sie tun müssen, ist eine bekommen SheetsService zuerst:

SheetsService sheetsService = new SheetsService(...) // (this will need some arguments) 

Und damit können Sie folgendermaßen vorgehen eine GET-Anforderung in C# zu tun:

sheetsService.Spreadsheets.Values.Get(spreadsheetId, range); 

Wo spreadsheetId und range sind Strings. Weitere Informationen finden Sie unter the documentation of GET.

+0

Sie fanden genau das, was ich zuvor gefunden! :) Kann nicht bearbeiten :(In dem Beispiel unten auf dieser Seite, wo es heißt SheetsService SheetsService = new SheetsService (neue BaseClientService.Initializer ist wo ich Ich habe die GetCredential() gefunden, die mir diesen Fehler gab. Auch die SheetsService.Spreadsheets.Values.Get ("skilledleckId", "A1") gibt mir einen Fehler: "Eine Objektverweis wird für das nicht statische Feld benötigt, method ... " – lolikols

+0

Ich habe versucht zu bearbeiten, um Sie wissen zu lassen, dass ich herausgefunden habe, warum ich den Fehler GetCredential() bekommen habe, aber nicht den Fehler SheetsService.Spreadsheets.Values.Get. – lolikols

+0

@lolikols Es gibt viele Treffer auf beiden stackoverflow und google, wenn Sie nach dem Fehler suchen "Für das nicht statische Feld, Methode ... ist ein Objektreferenz erforderlich." In diesem Fall sollte 'SheetsService'' sheetsService' sein. Beachten Sie den ersten Buchstaben, sollte es nicht großgeschrieben werden.'sheetsService' ist die Objektverweis, die benötigt wird. 'SheetsService' ist keine Objektreferenz. 'Spreadsheets' ist das nicht statische Feld, über das der Fehler spricht. Vielleicht lesen Sie mehr über statische und nicht-statische in C#, wenn Sie immer noch verwirrt sind. – PJvG