using System.Globalization; using Google.Apis.Drive.v3.Data; using Google.Apis.Sheets.v4; using Google.Apis.Sheets.v4.Data; using WebAPI.Models; using static Google.Apis.Drive.v3.FilesResource; namespace WebAPI.Exports { public class googleSheetExport { private GoogleDriveHelper googleDriveHelper; private SpreadsheetsResource.ValuesResource googleSheetValues; private readonly IConfiguration configuration; public googleSheetExport( GoogleDriveHelper _googleDriveHelper, SpreadsheetsResource.ValuesResource _googleSheetValues, IConfiguration _configuration) { googleDriveHelper = _googleDriveHelper; googleSheetValues = _googleSheetValues; configuration = _configuration; } public void export(Layer layer) { try { List> data = new List>() { new List() { layer.Name! } }; foreach (Record record in layer.Records!) { data.Add(new List { record.Code!, record.Value1!, record.Value2!, record.Value3!, record.Value4!, record.Value5!, record.Value6!, record.Value7!, record.Value8!, record.Value9!, record.Value10!, record.Value11!, record.Value12!, record.Value13!, record.Value14!, record.Value15!, record.Value16!, record.Value17!, record.Value18!, record.Value19!, record.Value20!, record.Value21!, record.Value22!, record.Value23!, record.Value24!, record.Value25!, record.Value26!, record.Value27!, record.Value28!, record.Value29!, record.Value30!, record.Value31!}); } Google.Apis.Drive.v3.Data.File body = new Google.Apis.Drive.v3.Data.File(); body.Name = $"{DateTime.Now.ToString(new CultureInfo("pl-PL"))}"; body.MimeType = "application/vnd.google-apps.spreadsheet"; body.Parents = new List { configuration["exportDirectory"] }; CreateRequest request = googleDriveHelper.Service.Files.Create(body); var file = request.Execute(); string sheetId = file.Id; var range = $"Sheet1!A1:AF${data.Count}"; ValueRange valueRange = new ValueRange() { Values = data}; var updateRequest = googleSheetValues.Update(valueRange, sheetId, range); updateRequest.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.RAW; updateRequest.Execute(); } catch (Exception e) { Console.WriteLine(e.ToString()); } } } }