Guest User

Untitled

a guest
Oct 26th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Linq;
  6. using System.Text;
  7. using Google.GData.Client;
  8. using Google.GData.Documents;
  9. using Google.GData.Spreadsheets;
  10.  
  11. namespace GoogleDocsExtractor
  12. {
  13. public class GoogleExcel
  14. {
  15. public GoogleExcel(string applicationName, string userName, string password)
  16. {
  17. _application = applicationName;
  18. _userName = userName;
  19. _password = password;
  20. }
  21.  
  22. private string _application, _userName, _password;
  23. private ArrayList allWorksheets = new ArrayList();
  24.  
  25. private List<HerceptinStanding> _standings = new List<HerceptinStanding>();
  26.  
  27. public void Start()
  28. {
  29. try
  30. {
  31. var service = new SpreadsheetsService(_application){
  32. Credentials = new GDataCredentials(_userName, _password)
  33. };
  34.  
  35. var query = new Google.GData.Spreadsheets.SpreadsheetQuery();
  36. var spreadsheetFeed = service.Query(query).Entries.Where(m => m.Title.Text == "TOGA Contest March Monthly FIN").Cast<SpreadsheetEntry>();
  37. foreach (var spreadsheetEntry in spreadsheetFeed){
  38. var link = spreadsheetEntry.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null);
  39.  
  40. var wsQuery = new WorksheetQuery(link.HRef.ToString());
  41. var spreadsheetWorksheets = service.Query(wsQuery).Entries.Cast<WorksheetEntry>();
  42.  
  43. foreach (var worksheet in spreadsheetWorksheets){
  44. var listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);
  45. var lQry = new ListQuery(listFeedLink.HRef.ToString());
  46. var listFeed = service.Query(lQry);
  47.  
  48. foreach (ListEntry worksheetRow in listFeed.Entries)
  49. {
  50. var standing = new HerceptinStanding();
  51. var elements = worksheetRow.Elements;
  52. foreach (ListEntry.Custom e in elements){
  53. switch (e.LocalName)
  54. {
  55. case "name":
  56. standing.Name = e.Value;
  57. break;
  58. case "territory":
  59. standing.Territory = e.Value;
  60. break;
  61. case "march2011terr":
  62. standing.Territory = e.Value;
  63. break;
  64. case "weightedgrowth":
  65. standing.WeightedGrowth = e.Value;
  66. break;
  67. case "rank":
  68. standing.Rank = e.Value;
  69. break;
  70. case "tier":
  71. standing.Tier = e.Value;
  72. break;
  73. default:
  74. Console.WriteLine(e.LocalName);
  75. break;
  76. }
  77. }
  78. _standings.Add(standing);
  79. }
  80.  
  81. }
  82. }
  83.  
  84. int i = 0;
  85. foreach (var s in _standings)
  86. {
  87. Console.WriteLine(++i + ".) " + s.ToString());
  88. }
  89. Console.WriteLine("done");
  90. Console.ReadLine();
  91. }
  92. catch (Exception e)
  93. {
  94. var msg = e.GetBaseException().Message;
  95. Console.WriteLine(msg);
  96. }
  97.  
  98. }
  99. }
  100.  
  101. public class HerceptinStanding
  102. {
  103. public HerceptinStanding() { }
  104.  
  105. [DisplayName("Name")]
  106. public string Name { get; set; }
  107.  
  108. [DisplayName("Territory")]
  109. public string Territory { get; set; }
  110.  
  111. [DisplayName("Weighted Growth")]
  112. public string WeightedGrowth { get; set; }
  113.  
  114. [DisplayName("Rank")]
  115. public string Rank { get; set; }
  116.  
  117. [DisplayName("Tier")]
  118. public string Tier { get; set; }
  119.  
  120. public override string ToString()
  121. {
  122. return string.Format("{0}\t\t{1}\t{2}\t{3}\t{4}", Name, Territory, WeightedGrowth, Rank, Tier);
  123. }
  124. }
  125. }
Add Comment
Please, Sign In to add comment