Advertisement
Guest User

Unity Google Spreadsheets integration example

a guest
Jul 12th, 2015
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.37 KB | None | 0 0
  1. // modified AccessSpreadsheet Method
  2. void AccessSpreadsheet(SpreadsheetFeed feed)
  3.     {
  4.  
  5.         string name = _SpreadsheetName;
  6.         SpreadsheetEntry spreadsheet = null;
  7.  
  8.         foreach (AtomEntry sf in feed.Entries)
  9.         {
  10.             if (sf.Title.Text == name)
  11.             {
  12.                 spreadsheet = (SpreadsheetEntry)sf;
  13.             }
  14.         }
  15.  
  16.         if (spreadsheet == null)
  17.         {
  18.             Debug.Log("There is no such spreadsheet with such title in your docs.");
  19.             return;
  20.         }
  21.  
  22.        
  23.         // Get the first worksheet of the first spreadsheet.
  24.         WorksheetFeed wsFeed = spreadsheet.Worksheets;
  25.         WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[0];
  26.        
  27.         // Define the URL to request the list feed of the worksheet.
  28.         AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);
  29.        
  30.         // Fetch the list feed of the worksheet.
  31.         ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());
  32.         ListFeed listFeed = service.Query(listQuery);
  33.        
  34.         //create list to add dynamic data
  35.         List<TestEntity> testEntities = new List<TestEntity>();
  36.  
  37.         foreach (ListEntry row in listFeed.Entries)
  38.         {
  39.             TestEntity entity = new TestEntity();
  40.             entity.name = row.Elements[0].Value;
  41.             entity.number = int.Parse(row.Elements[1].Value); //use Parse method to get int value
  42.             Debug.Log("Element: " + entity.name + ", " + entity.number.ToString());
  43.             testEntities.Add(entity);
  44.         }
  45.  
  46.         TestContainer container = new TestContainer(testEntities.ToArray());
  47.  
  48.         container.Save("test.xml");
  49.  
  50.     }
  51.  
  52. // classes for xml serialization
  53. public class TestEntity {
  54.  
  55.     public string name;
  56.     public int number;
  57.    
  58.     public TestEntity(){
  59.         name = "default";
  60.         number = 0;
  61.     }
  62. }
  63.  
  64. [XmlRoot("TestCollection")]
  65. public class TestContainer {
  66.     [XmlArray("TestEntities")]
  67.     [XmlArrayItem("testEntity")]
  68.     public TestEntity[] testEntities;// = new skinEntity[];
  69.    
  70.     public TestContainer(){
  71.     }
  72.    
  73.     public TestContainer(TestEntity[] arch){
  74.         testEntities = arch;
  75.     }
  76.    
  77.     public void Save(string path)
  78.     {
  79.         var serializer = new XmlSerializer(typeof(TestContainer));
  80.         using(var stream = new FileStream(path, FileMode.Create))
  81.         {
  82.             serializer.Serialize(stream, this);
  83.         }
  84.     }
  85.    
  86.     public static TestContainer Load(string path)
  87.     {
  88.         var serializer = new XmlSerializer(typeof(TestContainer));
  89.         using(var stream = new FileStream(path, FileMode.Open))
  90.         {
  91.             return serializer.Deserialize(stream) as TestContainer;
  92.         }
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement