static void ReadSheet() { var range = $"{sheet}!A:C"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(SpreadsheetId, range); var response = request.Execute(); IList <IList <object> > values = response.Values; if (values != null && values.Count > 0) { foreach (var row in values) { Console.WriteLine("{0} | {1} | {2}", row[0], row[1], row[2]); } } else { Console.WriteLine("No data found."); } }
public object Create(SheetRow _Row) { // Create Google Sheets API service. var service = new SheetsService(new BaseClientService.Initializer() { HttpClientInitializer = WebApiApplication.credential, ApplicationName = WebApiApplication.ApplicationName }); // Define request parameters. SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, "Data!A:B"); ValueRange response = request.Execute(); IList <IList <Object> > values = response.Values; ValueRange v = new ValueRange(); v.Range = "Data!A" + (values.Count + 1) + ":Z" + (values.Count + 1); IList <IList <object> > ret = new List <IList <object> >(); IList <object> row = new List <object>(); IList <ValueRange> lst = new List <ValueRange>(); foreach (string s in _Row.Row) { row.Add(s); } ret.Add(row); v.Values = ret; lst.Add(v); Google.Apis.Sheets.v4.Data.BatchUpdateValuesRequest _body = new Google.Apis.Sheets.v4.Data.BatchUpdateValuesRequest(); _body.Data = lst; _body.ValueInputOption = "RAW"; v.MajorDimension = "ROWS"; SpreadsheetsResource.ValuesResource.BatchUpdateRequest request2 = service.Spreadsheets.Values.BatchUpdate(_body, spreadsheetId); request2.Fields = "totalUpdatedRows"; BatchUpdateValuesResponse response2 = request2.Execute(); return(response2.TotalUpdatedRows); }
protected static string GetRange(SheetsService service, string SheetId) { // Define request parameters. String spreadsheetId = SheetId; String range = "A:A"; SpreadsheetsResource.ValuesResource.GetRequest getRequest = service.Spreadsheets.Values.Get(spreadsheetId, range); ValueRange getResponse = getRequest.Execute(); IList <IList <Object> > getValues = getResponse.Values; if (getValues == null) { return(getResponse.Range); } int currentCount = getValues.Count() + 1; String newRange = "A" + currentCount + ":A"; return(newRange); }
public async Task Execute(IJobExecutionContext context) { JobDataMap dataMap = context.JobDetail.JobDataMap; DiscordSocketClient dcordClient = (DiscordSocketClient)context.Scheduler.Context.Get("dcordClient"); SheetsService service = (SheetsService)context.Scheduler.Context.Get("service"); ulong clientKey = ulong.Parse(dataMap.GetString("channelKey")); ulong guildKey = ulong.Parse(dataMap.GetString("guildKey")); SocketTextChannel channel = dcordClient.GetGuild(guildKey).GetChannel(clientKey) as SocketTextChannel; await Console.Out.WriteLineAsync("Job executing"); // Define request parameters. String spreadsheetId = ConfigurationManager.AppSettings["Google_SpreadsheetID"]; String range = String.Format("'{0}/{1}'!A{2}:C{2}", DateTime.Today.Month, DateTime.Today.Year, DateTime.Today.Day + 1); SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range); // Print ValueRange response = request.Execute(); IList <IList <Object> > values = response.Values; String msgString = ""; if (values != null && values.Count > 0) { foreach (var row in values) { if (row.Count == 3) { msgString = String.Format("Hello! The reading for today ({0}) is from {1} {2}.\nhttps://www.biblegateway.com/passage/?search={1}+{2}&version=NKJV\nGod bless!", DateTime.Today.DayOfWeek.ToString(), row[1], row[2]); } } } if (msgString != "") { await channel.SendMessageAsync(msgString); } }
public List <Paciente> ReadEntries() { try { List <Paciente> lista = new List <Paciente>(); var range = $"{sheet}!A:M"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(SpreadsheetId, range); var response = request.Execute(); IList <IList <object> > values = response.Values; if (values != null && values.Count > 0) { int i = 0; foreach (var row in values) { i++; if (values[0] == row) { continue; } Paciente paciente = BindearPaciente(row, i); if (!Object.Equals(null, paciente)) { lista.Add(paciente); } } } else { Console.WriteLine("No data found."); } return(lista); } catch (Exception ex) { throw ex; } }
private List <List <string> > getInfo(string sheet_url, string rangeA0) { if (credential == null) { throw new Exception("認証情報の取得に失敗しました。credential null"); } List <List <string> > ans = new List <List <string> >(); var service = new SheetsService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); String spreadsheetId = sheetUrlToId(sheet_url); String range = rangeA0; // String range = "一覧!A1:J"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range); ValueRange response = request.Execute(); IList <IList <Object> > values = response.Values; if (values != null && values.Count > 0) { foreach (var row in values) { List <string> list = new List <string>(); foreach (var col in row) { list.Add(col.ToString()); } ans.Add(list); } } return(ans); }
public ValueRange GetSheetsData(string spreadsheetId, string worksheetName, string rangeExpression, int valueRenderOption) { SpreadsheetsResource.ValuesResource.GetRequest request = GetSheetsRequest(spreadsheetId, worksheetName, rangeExpression, valueRenderOption); ValueRange response = null; try { response = request.Execute(); } catch (Exception e) { _logger.LogError("Exception while fetching sheets data. Could be a rate limit...trying again in 30 seconds.", e); Thread.Sleep(30000); response = GetSheetsData(spreadsheetId, worksheetName, rangeExpression, valueRenderOption); } _logger.LogInformation("SheetsService instance retrieved {RowCount} rows of data for request for {SpreadsheetId}, {WorksheetName}, {RangeExpression}", response.Values.Count, spreadsheetId, worksheetName, rangeExpression); return(response); }
public void BuildGameDataFromSheet(string outRootPath) { string outPath = outRootPath + Path.DirectorySeparatorChar + "Alchemy.txt"; GoogleSheetConnector gsc = GoogleSheetConnector.GetInstance(); string talkSpreadsheetId = gsc.SpreadsheetIDs["Alchemy"]; Console.WriteLine("Getting Alchemy Spreadsheet content"); //Getting all current entries SpreadsheetsResource.ValuesResource.GetRequest request = gsc.Service.Spreadsheets.Values.Get(talkSpreadsheetId, SheetRange); ValueRange response = request.Execute(); List <IList <object> > values = (List <IList <object> >)response.Values; //Clearing talk File string rootPath = Path.GetDirectoryName(outPath); if (!Directory.Exists(rootPath)) { Directory.CreateDirectory(rootPath); } File.WriteAllText(outPath, ""); Console.WriteLine("Constructing Alchemy.txt..."); using (StreamWriter sw = File.AppendText(outPath)) { if (values != null && values.Count > 0) { foreach (var row in values) { sw.Write((string)row[0] + '\t'); //ID sw.Write((string)row[1] + '\t'); //Name sw.Write((string)row[3] + '\t'); //ID2 sw.Write('\r'); } } } Console.WriteLine("Done!"); }
private Tuple <List <string>, List <List <string> >, bool> ReadFromGoogleSheet(string date) { try { string credPath = "token.json"; string[] Scopes = { SheetsService.Scope.SpreadsheetsReadonly }; FileStream fileStream = new FileStream(Environment.CurrentDirectory + "//credentials.json", FileMode.Open, FileAccess.Read); UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(fileStream).Secrets, Scopes, configuration.From, CancellationToken.None, new FileDataStore(credPath, true)).Result; // Create Google Sheets API service. var service = new SheetsService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "Console App", }); // Define request parameters. string[] spreadsheetId = configuration.GoogleSheetURL.Split('/');//(configuration.GoogleSheetURL.LastIndexOf('/') + 1, (configuration.GoogleSheetURL.Length - configuration.GoogleSheetURL.LastIndexOf('/')) - 1); string range = "A:AZ"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId[spreadsheetId.Length - 2], range); ValueRange response = request.Execute(); IList <IList <Object> > values = response.Values; List <List <Object> > todaysStatus = new List <List <Object> >(); bool isTodayStatus = false; GetTodayStatus(values, ref todaysStatus, ref isTodayStatus, date); List <string> columns = (from p in values[0] select p.ToString()).ToList(); columns.RemoveRange(0, 2); columns.RemoveRange(5, 4); values.RemoveAt(0); List <List <string> > rows = todaysStatus.Select(s => s.Select(a => a.ToString()).ToList()).ToList(); return(new Tuple <List <string>, List <List <string> >, bool>(columns, rows, isTodayStatus)); } catch (Exception ex) { throw; } }
public IEnumerable <Nes> ReadEntries(string sheet, string columnRange) { SetupCredentials(); var sheetWithRange = $"{sheet}!{columnRange}"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(SpreadsheetId, sheetWithRange); var response = request.Execute(); IList <IList <object> > values = response.Values; List <Nes> something = Enumerable.Empty <Nes>().ToList(); if (values != null && values.Count > 0) { foreach (var row in values) { var nes = new Nes { Name = row[0].ToString(), NumberOfPlayers = row[1].ToString(), Type = row[2].ToString(), Save = row[3].ToString(), SimultaneousTurn = row[4].ToString(), NumberOfScrews = row[5].ToString(), Instructions = row[6].ToString(), Box = row[7].ToString(), MarkingsEtc = row[8].ToString(), Publisher = row[9].ToString(), Feature = row.Count > 10 ? row[10].ToString() : string.Empty }; something.Add(nes); } } return(something); }
//讀取 戰鬥暫存 public List <string> ReadFTempEntries(string key) { string sheet = "戰鬥暫存"; string Start = "A"; string End = "N"; var range = $"{sheet}!{Start}:{End}"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(SpreadsheetId, range); var response = request.Execute(); IList <IList <object> > values = response.Values; int 第幾筆 = 1; List <string> 回傳暫存資訊 = new List <string>(); //return values; if (values != null && values.Count > 0) { foreach (var row in values) { if (row[0].ToString() == key) { 回傳暫存資訊 = new List <string>() { row[HC.A].ToString(), row[HC.B].ToString(), row[HC.C].ToString(), row[HC.D].ToString(), row[HC.E].ToString() , row[HC.F].ToString(), row[HC.G].ToString(), row[HC.H].ToString(), row[HC.I].ToString(), row[HC.J].ToString(), row[HC.K].ToString(), row[HC.L].ToString(), row[HC.M].ToString(), row[HC.N].ToString(), 第幾筆.ToString() }; break; } 第幾筆++; } } return(回傳暫存資訊); }
public void ReadQualifiedEntriesCompany1() { var range = $"QualifiedQueue!A:G"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(SpreadsheetIdCompany1, range); var response = request.Execute(); var values = response.Values; if (values != null && values.Count > 0) { foreach (var row in values) { Console.WriteLine("{0} | {1} | {2} | {3}", row[0], row[1], row[2], row[3]); } } //IList<IList<object>> values = response.Values; //Console.WriteLine(values); /* SpreadsheetsResource.ValuesResource.GetRequest request = * service.Spreadsheets.Values.Get(SpreadsheetId, range); * * var response = request.Execute(); * IList<IList<object>> values = response.Values; * if (values != null && values.Count > 0) * { * foreach (var row in values) * { * // Print columns A to F, which correspond to indices 0 and 4. * Console.WriteLine("{0} | {1} | {2} ", row[0], row[1], row[2]); * } * } * else * { * Console.WriteLine("No data found."); * } */ }
public static async Task CheckSheets(DiscordSocketClient client) { SpreadsheetsResource.ValuesResource.GetRequest request = _service.Spreadsheets.Values.Get(SheetId, Range); ValueRange responses = request.Execute(); IList <IList <Object> > values = responses.Values; string start = Range.Split(':')[0]; start = Regex.Replace(start, @"[\d-]", string.Empty); // Checks if the newly retrieved sheet is the same as the previous one if (values.Count == _previousSheetValues.Count) { for (int i = 0; i < values.Count; i++) { for (int x = 0; x < values[i].Count; x++) { if (!values[i][x].Equals(_previousSheetValues[i][x])) { await AssignRoles(client, values); // Re-assigns all roles (System doesn't know if someone changed their previous form results) _previousSheetValues = values; return; } } } } else { await AssignRoles(client, values); _previousSheetValues = values; return; } Console.WriteLine("[" + DateTime.Now + "] No update from the linked Google Sheet."); }
//Gets sheet data from cell range static void GetSpreadData(string SheetTitle, string SheetName, string Column, int Min, int Max) { var service = new SheetsService(new BaseClientService.Initializer() { HttpClientInitializer = GetCredential(), ApplicationName = ApplicationName, }); // Define request parameters. String spreadsheetId = GetSheetIdByTitle(SheetTitle); String range = SheetName + "!" + Column + Convert.ToString(Min) + ":" + Column + Convert.ToString(Max); SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range); // Prints the names and majors of students in a sample spreadsheet: // https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit ValueRange response = request.Execute(); IList <IList <Object> > values = response.Values; if (values != null && values.Count > 0) { foreach (var row in values) { foreach (var col in row) { // Print columns A and E, which correspond to indices 0 and 4. Console.Write(col + ","); } Console.WriteLine(); } } else { Console.WriteLine("No data found."); } Console.Read(); }
private string GetTodaysRange(Pages page, SheetsService service) { string startRange = null; switch (page) { case Pages.SignIn: startRange = "Winter 2018!I" + rowStart.ToString() + ":N"; break; case Pages.LabEquipment: startRange = "Winter 2018!A" + rowStart.ToString() + ":G"; break; default: startRange = null; break; } SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, startRange); ValueRange response = request.Execute(); IList <IList <Object> > values = response.Values; string rowToInsert = (rowStart + values.Count()).ToString(); switch (page) { case Pages.SignIn: startRange = "Winter 2018!I" + rowToInsert + ":N" + rowToInsert; break; case Pages.LabEquipment: startRange = "Winter 2018!A" + rowToInsert + ":G" + rowToInsert; break; } return(startRange); }
public List <Data> GetSpreadsheetData <Data>(string spreadsheetId, string range) where Data : new() { var dataList = new List <Data>(); using (var service = GetSheetsService()) { try { SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range); var response = request.Execute(); IList <IList <object> > values = response.Values; if (values != null && values.Count > 0) { var type = typeof(Data); var properties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var row in values) { var dataItem = new Data(); foreach (var prop in properties.Select((value, index) => new { Value = value, Index = index })) { prop.Value.SetValue(dataItem, Convert(row[prop.Index].ToString(), prop.Value.PropertyType)); } dataList.Add(dataItem); } } } catch { } //На реализацию нормальной обработки нет времени return(dataList); } }
public void GatherSpreadSheetData(ref SheetsService service, string spreadsheetId, string range) { Console.WriteLine("Reading range: " + range); SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range); //Gather all the data in the first four columns ValueRange response = request.Execute(); IList <IList <Object> > values = response.Values; if (values != null && values.Count > 0) { Console.WriteLine("Building CardItems."); foreach (IList <Object> column in values) { Deck.Add(new CardItem(column[0].ToString(), column[1].ToString(), column[2].ToString(), column[3].ToString())); } } else { Console.WriteLine("No data found."); } }
private static void ReadEntries() { var range = $"{Sheet}!A:F"; SpreadsheetsResource.ValuesResource.GetRequest request = _service.Spreadsheets.Values.Get(SpreadsheetId, range); var response = request.Execute(); IList <IList <object> > values = response.Values; if (values != null && values.Count > 0) { foreach (var row in values) { // Print columns A to F, which correspond to indices 0 and 4. Console.WriteLine("{0} | {1} | {2} | {3} | {4} | {5}", row[0], row[1], row[2], row[3], row[4], row[5]); } } else { Console.WriteLine("No data found."); } }
public async Task <ValuesRange> GetAsync(string sheetId, SpreadsheetGetRequest getRequest, CancellationToken cancellationToken) { (CellCoordinate cellCoordinate, _) = CellCoordinate.ParseRange(getRequest.CellsRange); SpreadsheetsResource.ValuesResource.GetRequest request = _clientService.Spreadsheets.Values.Get(sheetId, $"{getRequest.Sheet}!{getRequest.CellsRange}"); request.ValueRenderOption = SpreadsheetsResource.ValuesResource.GetRequest.ValueRenderOptionEnum.UNFORMATTEDVALUE; ValueRange response = await request.ExecuteAsync(cancellationToken); IList <IList <object> > values = response.Values; IEnumerable <Cell> cells = values.Select((x, row) => x.Select((y, coll) => new Cell { Coordinate = new CellCoordinate { Row = row + cellCoordinate.Row, Column = Column.FromNumber(coll) + cellCoordinate.Column, }, Value = y as string })).SelectMany(x => x); var result = new ValuesRange(cells); return(result); }
public void Authorize() { using (var stream = new FileStream("PATH_TO_YOUR_CREDENTIALS_JSON_FILE", FileMode.Open, FileAccess.Read)) { string credPath = "token.json"; credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; } var service = new SheetsService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); _service = service; SpreadsheetsResource.ValuesResource.GetRequest request = _service.Spreadsheets.Values.Get(spreadsheetId, MainRange); }
protected static string GetRange(SheetsService service, string SheetId) { // Define request parameters. String spreadsheetId = SheetId; String range = "A:A"; SpreadsheetsResource.ValuesResource.GetRequest getRequest = service.Spreadsheets.Values.Get(spreadsheetId, range); System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return(true); }; ValueRange getResponse = getRequest.Execute(); IList <IList <Object> > getValues = getResponse.Values; if (getValues == null) { // spreadsheet is empty return Row A Column A return("A:A"); } int currentCount = getValues.Count() + 1; String newRange = "A" + currentCount + ":A"; return(newRange); }
public static IList <IList <Object> > Read(SheetsService service, string sheetsId, string listName, string cellsRange) { Console.Write("Чтение данных из удаленной таблицы..."); // Define request parameters. String spreadsheetId = sheetsId; String range = listName + (cellsRange == "" ? "" : ("!" + cellsRange)); SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range); ValueRange response = request.Execute(); IList <IList <Object> > values = response.Values; if (values == null || values.Count <= 0) { Console.WriteLine("No data found."); } Console.WriteLine("Завершено."); return(values); }
private static ValueRange ObterPlanilha() { var credential = GoogleCredential.FromFile("credential.json") .CreateScoped(Scopes) .CreateWithUser("*****@*****.**"); var service = new SheetsService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, ApiKey = "AIzaSyBxIm7pJoMISavNfbAvYNclX6Mn6Esh0hI" }); String spreadsheetId = "1UMHhZiMOkBrOO8Vw0ash7JFay2_rbOhLATvdwXtijL4"; String range = "Evolução de empresas contratadas CCX"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range); request.MajorDimension = MajorDimensionEnum.COLUMNS; ValueRange response = request.Execute(); return(response); }
private IList <IList <object> > GetRegions() { SheetsService service = new SheetsService(new BaseClientService.Initializer { HttpClientInitializer = _credential, ApplicationName = "TrafficJams" }); string spreadsheetId = "1AhemqFP2lZ4ifcXGmArOydA3w24Yd7LdQ3KZveN-JR4"; string range = "Регионы!A1:B"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range); try { ValueRange response = request.Execute(); return(response.Values); } catch (Exception e) { Debug.WriteLine(e); throw; } }
internal void SheetRead() { var range = $"{sheet}!A1:E1"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range); ValueRange response = request.Execute(); IList <IList <object> > values = response.Values; if (values != null && values.Count > 0) { foreach (var row in values) { Console.WriteLine("{0}, {1}, {2}, {3}", row[0], row[1], row[2], row[3]); } } else { Console.WriteLine("No data found."); } }
private void ReadEntries() { var range = "A2:K"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(SpreadsheetId, range); var response = request.Execute(); IList <IList <object> > values = response.Values; if (values != null && values.Count > 0) { //ListViewItem item = new ListViewItem(); foreach (var row in values) { dataGridView1.Rows.Add(row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10]); } } else { MessageBox.Show("Ошибка чтения данных"); } }
public bool UpdateItemCount(string item, int delta = 1) { SpreadsheetsResource.ValuesResource.GetRequest request = Service.Spreadsheets.Values.Get(SheetID, ItemRange); ValueRange response = request.Execute(); int rownum = this.StartingRow; foreach (var row in response.Values) { if (item.Equals((string)row[0], System.StringComparison.CurrentCultureIgnoreCase)) { int currentamount = int.Parse((string)row[1]); currentamount += delta; string updateCell = string.Format("{0}!{1}", SheetName, A1(StartingColumn + 1, rownum)); ValueRange updateRange = new ValueRange(); updateRange.MajorDimension = "COLUMNS"; var temp = new List <object> { currentamount }; updateRange.Values = new List <IList <object> > { temp }; // WHY IS JAVA LEAKING INTO MY C# SpreadsheetsResource.ValuesResource.UpdateRequest updateRequest = Service.Spreadsheets.Values.Update(updateRange, SheetID, updateCell); updateRequest.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.RAW; var updateresponse = updateRequest.Execute(); return(updateresponse.UpdatedCells > 0); } rownum++; } return(false); }
//讀取 特定角色 public List <string> ReadRoleEntries(string name) { List <string> 回傳角色資訊 = new List <string>();; string sheet = "角色"; string Start = "A"; string End = "I"; var range = $"{sheet}!{Start}:{End}"; SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(SpreadsheetId, range); var response = request.Execute(); IList <IList <object> > values = response.Values; //List<string> 回傳角色資訊 = new List<string>(); //return values; if (values != null && values.Count > 0) { foreach (var row in values) { if (row[0].ToString() == name) { 回傳角色資訊 = new List <string>() { row[0].ToString(), row[1].ToString(), row[2].ToString() , row[3].ToString(), row[4].ToString(), row[5].ToString(), row[6].ToString(), row[7].ToString(), row[8].ToString() }; break; } } } return(回傳角色資訊); }
public Dictionary <string, ChannelRole> GetChannels(bool forceReload = false) { if (!forceReload && channels != null) { return(channels); } var result = new Dictionary <string, ChannelRole>(); SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, channelListRange); ValueRange response = request.Execute(); IList <IList <Object> > rows = response.Values; if (rows != null && rows.Count > 0) { for (int i = 1; i < rows.Count; i++) { if (rows[i].Count > 0) { string channel = rows[i][0].ToString().ToLower(); string type = rows[i].Count > 1 ? rows[i][1].ToString().ToLower() : null; if (!string.IsNullOrWhiteSpace(channel)) { result.Add(channel, Util.GetChannelTypeFromString(type)); } } } } if (result.Count == 0) { Console.WriteLine("Warning, no channel list found."); } channels = result; return(result); }
public virtual void BuildGameDataFromSheet(string outRootPath) { string outFilePath = outRootPath + Path.DirectorySeparatorChar + FilePathWithoutExtension + OutputExtension; Console.WriteLine("Getting " + AssetName + " Spreadsheet content"); SpreadsheetsResource.ValuesResource.GetRequest request = GoogleSheetConnector.GetInstance().Service.Spreadsheets.Values.Get(SheetId, SheetRange); ValueRange response = request.Execute(); List <IList <object> > values = (List <IList <object> >)response.Values; //Clearing Asset File string outDirectory = Path.GetDirectoryName(outFilePath); if (!Directory.Exists(outDirectory)) { Directory.CreateDirectory(outDirectory); } //Resetting file File.WriteAllText(outFilePath, ""); //Getting all Sheet entries and dumping them into output text asset in right format Console.WriteLine("Extracting to " + FilePathWithoutExtension + OutputExtension); StreamWriter sw = File.AppendText(outFilePath); if (values != null && values.Count > 0) { foreach (var row in values) { AssetEntry thisEntry = new AssetEntry(VariableDefinitions); thisEntry.PopulateBySheetRow(row); thisEntry.AppendToFile(sw, thisEntry); } } sw.Close(); }