I am trying to find how to use the Google Sheets API in Angular. There is no reference to Angular on the documentation page. I have tried this and it doesn't seem to be working.
Can someone direct me on how I can use the Google Sheets API inside of my Angular application?
I am currently using Angular 8
The Google Spreadsheets data API is an extension of the GData API protocol, which you can use to create programs that interact with Google Spreadsheets.
All use of the Google Sheets API is available at no additional cost. Exceeding the quota request limits doesn't incur extra charges and your account is not billed.
I made an Angular library exactly for this use case!
With ng-google-sheets-db you can load data from Google Sheets in a breeze and use Google Sheets as your (read-only) backend for your Angular app! You may check out the Stackblitz example app.
ng add ng-google-sheets-db
or
npm install ng-google-sheets-db
1gSc_7WCmt-HuSLX01-Ev58VsiFuhbpYVo8krbPCvvqA
): It is part of the Google spreadsheet URL.A good overview guide is the Get started as a Workspace developer.
Add GoogleSheetsDbService
to your app's module as a provider and Angular's HttpClientModule
to the imports:
import { HttpClientModule } from '@angular/common/http';
import { API_KEY, GoogleSheetsDbService } from 'ng-google-sheets-db';
@NgModule({
...
imports: [
HttpClientModule,
...
],
providers: [
{
provide: API_KEY,
useValue: <YOUR_GOOGLE_SHEETS_API_KEY>,
},
GoogleSheetsDbService
],
...
})
export class AppModule { }
Import and inject into your component's constructor:
import { GoogleSheetsDbService } from 'ng-google-sheets-db';
@Component({
...
})
export class YourComponent implements OnInit {
characters$: Observable<Character[]>;
constructor(private googleSheetsDbService: GoogleSheetsDbService) { }
ngOnInit(): void {
this.characters$ = this.googleSheetsDbService.get<Character>('1gSc_7WCmt-HuSLX01-Ev58VsiFuhbpYVo8krbPCvvqA', "Characters", characterAttributesMapping);
}
The attributesMapping
maps the Google spreadsheet columns to to your outcome object.
const attributesMapping = {
id: "ID",
name: "Name",
email: "Email Address",
contact: {
_prefix: "Contact ",
street: "Street",
streetNumber: "Street Number",
zip: "ZIP",
city: "City",
},
skills: {
_prefix: "Skill ",
_listField: true,
},
};
For example, the Google spreadsheet column Email Address is mapped to the outcome object attribute email
.
contact
is an example of a nested object. You may define a _prefix
as a prefix for all columns of the nested object. Please note that the _prefix
may need a trailing whitespace.
skills
is an example of a list. You need to set _listField
and a _prefix
for all columns of the list. In this example, all columns starting with _Skill _ and an increasing number are part of the list, i.e. Skill 1, Skill 2, etc. Please note that the _prefix
may need a trailing whitespace.
It comes with a step by step usage guide and a demo application!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With