![]() |
VOOZH | about |
The ADO.NET Provider for Google Sheets by CData incorporates conventional ADO.NET data access components compatible with third-party controls. You can adhere to the standard ADO.NET data binding procedures to establish two-way access to real-time data through UI controls. This article will demonstrate the utilization of CData components for data binding with DevExpress UI Controls (Windows Forms and Web controls), specifically binding to a chart that visualizes live data.
You can connect to a spreadsheet by providing authentication to Google and then setting the Spreadsheet connection property to the name or feed link of the spreadsheet. If you want to view a list of information about the spreadsheets in your Google Drive, execute a query to the Spreadsheets view after you authenticate.
ClientLogin (username/password authentication) has been officially deprecated since April 20, 2012 and is now no longer available. Instead, use the OAuth 2.0 authentication standard. To access Google APIs on behalf on individual users, you can use the embedded credentials or you can register your own OAuth app.
OAuth also enables you to use a service account to connect on behalf of users in a Google Apps domain. To authenticate with a service account, register an application to obtain the OAuth JWT values.
See the Getting Started chapter in the help documentation to connect to Google Sheets from different types of accounts: Google accounts, Google Apps accounts, and accounts using two-step verification.
The code below shows how to populate a DevExpress chart with Google Sheets data. The GoogleSheetsDataAdapter binds to the Series property of the chart control. The Diagram property of the control defines the x- and y-axes as the column names.
using (GoogleSheetsConnection connection = new GoogleSheetsConnection(
"Spreadsheet=MySheet;InitiateOAuth=GETANDREFRESH;")) {
GoogleSheetsDataAdapter dataAdapter = new GoogleSheetsDataAdapter(
"SELECT Shipcountry, SUM(OrderPrice) FROM Orders GROUP BY Shipcountry", connection);
DataTable table = new DataTable();
dataAdapter.Fill(table);
DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series();
chartControl1.Series.Add(series);
series.DataSource = table;
series.ValueDataMembers.AddRange(new string[] { "OrderPrice" });
series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Qualitative;
series.ArgumentDataMember = "Shipcountry";
series.ValueScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}
👁 The complete code example and the resulting chart.The code below shows how to populate a DevExpress Web control with Google Sheets data. The GoogleSheetsDataAdapter binds to the Series property of the chart; the Diagram property defines the x- and y-axes as the column names.
using DevExpress.XtraCharts;
using (GoogleSheetsConnection connection = new GoogleSheetsConnection(
"Spreadsheet=MySheet;InitiateOAuth=GETANDREFRESH;"))
{
GoogleSheetsDataAdapter GoogleSheetsDataAdapter1 = new GoogleSheetsDataAdapter("SELECT Shipcountry, SUM(OrderPrice) FROM Orders GROUP BY Shipcountry", connection);
DataTable table = new DataTable();
GoogleSheetsDataAdapter1.Fill(table);
DevExpress.XtraCharts.Series series = new Series("Series1", ViewType.Bar);
WebChartControl1.Series.Add(series);
series.DataSource = table;
series.ValueDataMembers.AddRange(new string[] { "OrderPrice" });
series.ArgumentScaleType = ScaleType.Qualitative;
series.ArgumentDataMember = "Shipcountry";
series.ValueScaleType = ScaleType.Numerical;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}
👁 An ASP.NET application created with the ADO.NET Provider and the DevExpress Web Forms control. (Salesforce is shown.)Download a free trial of the Google Sheets Data Provider to get started:
Download NowLearn more:
👁 Google Sheets IconEasily connect .NET applications with real-time data from spreadsheets stored in Google Docs. Use Google Sheets to manage the data that powers your applications.