سؤال

أواجه بعض المعلومات في جداول بيانات Google كصفحة واحدة. هل هناك أي طريقة يمكنني قراءة هذه المعلومات من .NET عن طريق توفير بيانات اعتماد Google وعنوان جدول البيانات. هل من الممكن استخدام APIs بيانات Google. في النهاية أحتاج إلى الحصول على المعلومات من جدول بيانات Google في DataTable. كيف يمكنني فعل ذلك؟ إذا حاول أي شخص، الثابتة والمتنقلة مشاركة بعض المعلومات.

هل كانت مفيدة؟

المحلول

بحسب ال دليل مستخدم .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);
}

نصائح أخرى

كتبت غلاف بسيط حول مكتبة عملاء .NET Google, ، يعرض واجهة تشبه قاعدة البيانات أبسط، مع أنواع سجل مكتوبة بقوة. إليك بعض رمز العينة:

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

هناك أيضا مزود LinQ يترجم إلى Google مشغلي الاستعلام المهيكلة:

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

(يونيو نوفمبر 2016) والسؤال وإجاباته الآن قديمة كما هو: 1) و APIS GDATA هي الجيل السابق من Google Apis. في حين لم تنخفض جميع واجهات برمجة التطبيقات GDATA، جميع أحدث أجهزة برمجة التطبيقات جوجل فعل ليس استعمال بروتوكول بيانات Google; ؛ و 2) هناك أوراق جوجل جديدة API V4 (أيضا ليس gdata).

المضي قدما من هنا، تحتاج إلى الحصول عليها مكتبة عميل Google APIS ل .NET واستخدام الأحدث صفائح API., ، وهو أكثر قوة وأكثر قوة من أي واجهة برمجة تطبيقات سابقة. هنا C # رمز نموذج للمساعدة في بدء تشغيلك. تحقق أيضا من .NET المراجع المستندات ل API الأوراق و ال .NET Google APIs دليل مطوري مكتبة عميل.

إذا كنت لا تعاني من حساسية من Python (إذا كنت كذلك، فما عليك سوى التظاهر بأنه pseudocode؛)، فقد قمت بعدة مقاطع فيديو مع أمثلة أطول قليلا ومزيد من الأمثلة "في العالم الحقيقي" لاستخدام API الذي يمكنك التعلم منه والترحيل إلى C # إذا رغبت في ذلك في

يمكنك أن تفعل ما تطرحه عدة طرق:

  1. باستخدام مكتبة جدول البيانات Google C # (كما هو الحال في إجابة TACOMAN667) لإحضار ListFeed والتي يمكن أن تعيد قائمة الصفوف (Listentry في Google Parlance) لكل منها قائمة من أزواج قيمة الاسم. جدول بيانات جوجل API (http://code.google.com/apis/spreadsheets/code.html ..) يحتوي الوثائق على معلومات أكثر من كافية لتحصل عليك.

  2. باستخدام API للتصور Google والتي تتيح لك تقديم استعلامات أكثر تطورا (مثل SQL) فقط لإحضار الصفوف / الأعمدة التي تحتاجها فقط.

  3. يتم إرجاع محتويات جدول البيانات كغذاء Atom حتى تتمكن من استخدام XPath أو SAX Parsing لاستخراج محتويات تغذية القائمة. هناك مثال على القيام بذلك بهذه الطريقة (في Java و JavaScript فقط على الرغم من أنني أخاف) في http://gqlx.twyst.co.za..

أنا متأكد من أنه سيكون هناك بعض C # SDKS / Toolkits على رمز Google لهذا. وجدت هذا, ، ولكن قد يكون هناك آخرين حتى يستحق الحصول على تصفح حولها.

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

هذا يجب عليك ان تبداء. لم ألعب معها مؤخرا لكنني قمت بتنزيل نسخة قديمة جدا أثناء الظهر ويبدو صلبة جميلة. يتم تحديث هذا واحد إلى Visual Studio 2008 وكذلك تحقق من المستندات!

هذه الصفحة المدونة المكونة في 24 مارس 2017 بواسطة Marcos Placona قد تكون مفيدة.

جوجل جداول البيانات و .NET الأساسية

المراجع google.api.sheets.v4. و OATH2..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top