문제

Google 스프레드 시트에 단일 시트로 정보가 있습니다. Google 자격 증명 및 스프레드 시트 주소를 제공하여 .NET 에서이 정보를 읽을 수있는 방법이 있습니까? Google Data API를 사용하여 가능합니까? 궁극적으로 Google 스프레드 시트의 정보를 데이터 테이블로 가져와야합니다. 어떻게하니? 누군가가 그것을 시도한 경우, PLS는 정보를 공유합니다.

도움이 되었습니까?

해결책

에 따르면 .NET 사용자 안내서:

다운로드 .NET 클라이언트 라이브러리:

진술을 사용하여 다음을 추가하십시오.

using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Spreadsheets;

인증 :

SpreadsheetsService myService = new SpreadsheetsService("exampleCo-exampleApp-1");
myService.setUserCredentials("jo@gmail.com", "mypassword");

스프레드 시트 목록 가져 오기 :

SpreadsheetQuery query = new SpreadsheetQuery();
SpreadsheetFeed feed = myService.Query(query);

Console.WriteLine("Your spreadsheets: ");
foreach (SpreadsheetEntry entry in feed.Entries)
{
    Console.WriteLine(entry.Title.Text);
}

이미 검색 한 스프레드 시트 텐트를 주어 주면이 스프레드 시트에서 다음과 같이 모든 워크 시트 목록을 얻을 수 있습니다.

AtomLink link = entry.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null);

WorksheetQuery query = new WorksheetQuery(link.HRef.ToString());
WorksheetFeed feed = service.Query(query);

foreach (WorksheetEntry worksheet in feed.Entries)
{
    Console.WriteLine(worksheet.Title.Text);
}

셀 기반 피드 받기 :

AtomLink cellFeedLink = worksheetentry.Links.FindService(GDataSpreadsheetsNameTable.CellRel, null);

CellQuery query = new CellQuery(cellFeedLink.HRef.ToString());
CellFeed feed = service.Query(query);

Console.WriteLine("Cells in this worksheet:");
foreach (CellEntry curCell in feed.Entries)
{
    Console.WriteLine("Row {0}, column {1}: {2}", curCell.Cell.Row,
        curCell.Cell.Column, curCell.Cell.Value);
}

다른 팁

나는 간단한 포장지를 썼다 주위에 Google의 .NET 클라이언트 라이브러리, 그것은 강력한 레코드 유형으로 더 간단한 데이터베이스와 유사한 인터페이스를 노출시킵니다. 샘플 코드는 다음과 같습니다.

public class Entity {
    public int IntProp { get; set; }
    public string StringProp { get; set; }
}

var e1 = new Entity { IntProp = 2 };
var e2 = new Entity { StringProp = "hello" };
var client = new DatabaseClient("you@gmail.com", "password");
const string dbName = "IntegrationTests";
Console.WriteLine("Opening or creating database");
db = client.GetDatabase(dbName) ?? client.CreateDatabase(dbName); // databases are spreadsheets
const string tableName = "IntegrationTests";
Console.WriteLine("Opening or creating table");
table = db.GetTable<Entity>(tableName) ?? db.CreateTable<Entity>(tableName); // tables are worksheets
table.DeleteAll();
table.Add(e1);
table.Add(e2);
var r1 = table.Get(1);

Google의 구조화 된 쿼리 연산자:

var q = from r in table.AsQueryable()
        where r.IntProp > -1000 && r.StringProp == "hello"
        orderby r.IntProp
        select r;

(Jun-Nov 2016) 질문과 그 대답은 이제 다음과 같습니다. 1) GDATA API 이전 세대의 Google API입니다. 모든 gdata apis가 더 이상 사용되지는 않지만 모든 최신 Google API 하다 ~ 아니다 사용 Google 데이터 프로토콜; 그리고 2) a 새로운 Google Sheets API V4 (또한 gdata가 아님).

여기에서 앞으로 나아가면 있어야합니다 .NET 용 Google API 클라이언트 라이브러리 그리고 최신을 사용하십시오 시트 API, 이전 API보다 훨씬 강력하고 유연합니다. 여기에 있습니다 C# 코드 샘플 시작하는 데 도움이됩니다. 또한 확인하십시오 시트 API에 대한 .NET 참조 문서 그리고 .NET Google APIS 클라이언트 라이브러리 개발자 안내서.

Python에 알레르기가 없다면 (만약 당신이있는 경우, pseudocode;)), 나는 당신이 원하는 경우 배우고 c#로 마이그레이션 할 수있는 API를 사용하는 "실제"예제로 약간 더 길고 "실제"를 가진 여러 비디오를 만들었습니다. :

여러 가지 방법을 요구하는 일을 할 수 있습니다.

  1. Google의 스프레드 시트 C# 라이브러리 (Tacoman667의 답변에서와 같이)를 사용하여 각각 이름 값 쌍 목록이있는 행 목록 (Google Parlance의 Listentry)을 반환 할 수있는 ListFeed를 가져올 수 있습니다. Google 스프레드 시트 API (http://code.google.com/apis/spreadsheets/code.html) 문서에는 시작하기에 충분한 정보가 있습니다.

  2. Google Visualization API를 사용하여보다 정교한 (거의 SQL과 유사한) 쿼리를 제출하여 필요한 행/열만 가져올 수 있습니다.

  3. 스프레드 시트 내용은 원자 피드로 반환되므로 XPATH 또는 SAX 구문 분석을 사용하여 목록 피드의 내용을 추출 할 수 있습니다. 이런 식으로 수행하는 예가 있습니다 (Java와 JavaScript에서만 두려워하지만) http://gqlx.twyst.co.za.

Google 코드에 C# SDK / 툴킷이있을 것이라고 확신합니다. 나는 찾았다 이 하나, 그러나 다른 사람들이있을 수 있으므로 주변을 탐색 할 가치가 있습니다.

http://code.google.com/apis/gdata/articles/dotnet_client_lib.html

이것은 당신을 시작해야합니다. 나는 최근에 그것을 가지고 놀지 않았지만 잠시 오래된 버전을 다운로드했는데 꽤 견고 해 보였습니다. 이것은 Visual Studio 2008로 업데이트되므로 문서를 확인하십시오!

Marcos Placona가 2017 년 3 월 24 일에 만든이 Twilio 블로그 페이지는 도움이 될 수 있습니다.

Google 스프레드 시트 및 .NET 코어

그것은 참조 google.api.sheets.v4 그리고 oauth2.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top