@zqsdprod/gsheet-service
v1.0.7
Published
## GSheetService
Downloads
3
Readme
ZQSD Common Utils
GSheetService
Installation
npm i @zqsdprod/gsheet-service
Usage
Ce service permet de récupérer les données d'une feuille de calcul Google Sheet uniquement si celle-ci est publique.
Dans un premier temps, il faut importer le module et le configurer avec la clé d'API Google :
import { GSheetModule } from '@zqsdprod/gsheet-service';
@NgModule({
declarations: [],
imports: [
GSheetModule.forRoot({ apiKey: '...' })
],
exports: []
})
export class AppModule {}
Ensuite vous pouvez importer le service où vous le souhaitez.
import { GSheetService } from '@zqsdprod/gsheet-service';
@Component({})
export class MyComponent {
constructor(private sheetService: GSheetService) {
}
}
Enregistrer une feuille
Vous devez commencer par enregistrer dans le service la sheet avec son ID (trouvable dans l'url) et le nom de votre choix.
import { GSheetService } from '@zqsdprod/gsheet-service';
@Component({})
export class MyComponent {
constructor(private sheetService: GSheetService) {
this.sheetService.registerSheet('mon-tournoi', 'ID_DU_SHEET')
}
}
Ensuite, vous pouvez récupérer les données de la feuille en question.
Attention : l'opération est asynchrone. Vous devrez utiliser rxjs pour récupérer les données.
this.sheetService
.load('mon-tournoi')
.fromPage('Feuille 1')
.fromRange('A1:B200')
.getValues()
.subscribe({
next: (data: SheetResults) => {
/**
* Gérer les résultats ici, ou chainez les opérations avec rxjs
* pour les transformer
*
* Les data récupérées sont de type SheetResults :
*
* interface SheetResults {
* majorDimension: string;
* range: string;
* values: string[][];
* }
*
*/
},
error: (err) => {
console.error(err);
// Gestion d'erreur ici
}
});
Vous pouvez aussi extraire les headers pour avoir un typage plus agréable :
this.sheetService
.load('mon-tournoi')
.fromPage('Feuille 1')
.fromRange('A1:B200')
.getRowsWithHeaders<VotreType>()
.subscribe({
next: (data: SheetRow<VotreType>) => {
/**
* Gérer les résultats ici, ou chainez les opérations avec rxjs
* pour les transformer
*
* Les data récupérées sont de type SheetRow<VotreType>
* Le champ 'id' est populé automatiquement avec le numéro de la lighe du gsheet
*
*
*/
},
error: (err) => {
console.error(err);
// Gestion d'erreur ici
}
});