/// <summary>
        /// Retrieves and prints a list feed of the specified worksheet.
        /// </summary>
        /// <param name="service">an authenticated SpreadsheetsService object</param>
        /// <param name="entry">the worksheet to retrieve</param>
        /// <param name="reverseRows">true if the rows in the worksheet should
        /// be reversed when returned from the server</param>
        private static void RetrieveListFeed(SpreadsheetsService service, WorksheetEntry entry,
                                             bool reverseRows)
        {
            AtomLink listFeedLink = entry.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

            Console.WriteLine();
            Console.WriteLine("This worksheet's list feed URL is:");
            Console.WriteLine(listFeedLink.HRef);

            ListQuery query = new ListQuery(listFeedLink.HRef.ToString());

            if (reverseRows)
            {
                query.OrderByPosition = true;
                query.Reverse         = true;
            }
            ListFeed feed = service.Query(query);

            Console.WriteLine();
            Console.WriteLine("Worksheet has {0} rows:", feed.Entries.Count);
            foreach (ListEntry worksheetRow in feed.Entries)
            {
                ListEntry.CustomElementCollection elements = worksheetRow.Elements;
                foreach (ListEntry.Custom element in elements)
                {
                    Console.Write(element.Value + "\t");
                }
                Console.WriteLine();
            }
        }
예제 #2
0
        public GoogleWorksheet(WorksheetEntry worksheet)
        {
            Service = (SpreadsheetsService)worksheet.Service;

            // Fetch the cell feed of the worksheet.
            CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);
            CellFeed  cellFeed  = Service.Query(cellQuery);

            this.Columns = cellFeed.RowCount.IntegerValue;
            this.Rows    = cellFeed.ColCount.IntegerValue;

            // Iterate through each cell, printing its value.
            foreach (CellEntry cell in cellFeed.Entries)
            {
                Console.WriteLine(cell.Edited.DateValue);

                // Print the cell's address in A1 notation
                Console.WriteLine(cell.Title.Text);
                // Print the cell's address in R1C1 notation
                Console.WriteLine(cell.Id.Uri.Content.Substring(cell.Id.Uri.Content.LastIndexOf("/") + 1));
                // Print the cell's formula or text value
                Console.WriteLine(cell.InputValue);
                // Print the cell's calculated value if the cell's value is numeric
                // Prints empty string if cell's value is not numeric
                Console.WriteLine(cell.NumericValue);
                // Print the cell's displayed value (useful if the cell has a formula)
                Console.WriteLine(cell.Value);

                Console.ReadLine();
            }
        }
예제 #3
0
        public bool Process()
        {
            Debug.WriteLine("start AddMaterialChangeEntry");
            WorksheetEntry sheet = GetWorksheet("Materials");

            if (sheet == null)
            {
                _finishCallback(false);
                return(false);
            }

            sheet = CheckColumns(sheet, LogData.MaterialChangeInfo.SpreadsheetColumnTitle());

            ListFeed listFeed = _wrapper.Query(sheet);

            //ListEntry listRow = new ListEntry();
            ListEntry row = (ListEntry)listFeed.CreateFeedEntry();

            foreach (var it in _info.KeyValue)
            {
                row.Add(it);
            }

            listFeed.Insert(row);

            _finishCallback(true);
            return(true);
        }
        /// <summary>
        /// Inserts a new row in the specified worksheet.
        /// </summary>
        /// <param name="service">an authenticated SpreadsheetsService object</param>
        /// <param name="entry">the worksheet into which the row will be inserted</param>
        /// <returns>the inserted ListEntry object, representing the new row</returns>
        private static ListEntry InsertRow(SpreadsheetsService service, WorksheetEntry entry)
        {
            AtomLink listFeedLink = entry.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

            ListQuery query = new ListQuery(listFeedLink.HRef.ToString());
            ListFeed  feed  = service.Query(query);

            ListEntry firstRow = feed.Entries[0] as ListEntry;
            ListEntry newRow   = new ListEntry();

            Console.WriteLine();
            Console.WriteLine("Inserting a new row...");
            foreach (ListEntry.Custom element in firstRow.Elements)
            {
                Console.Write("Enter the value of column \"{0}\": ", element.LocalName);
                String elementValue = Console.ReadLine();

                ListEntry.Custom curElement = new ListEntry.Custom();
                curElement.LocalName = element.LocalName;
                curElement.Value     = elementValue;

                newRow.Elements.Add(curElement);
            }

            ListEntry insertedRow = feed.Insert(newRow);

            Console.WriteLine("Successfully inserted new row: \"{0}\"",
                              insertedRow.Content.Content);

            return(insertedRow);
        }
        /// <summary>
        /// Updates a single cell in the specified worksheet.
        /// </summary>
        /// <param name="service">an authenticated SpreadsheetsService object</param>
        /// <param name="entry">the worksheet to update</param>
        private static void UpdateCell(SpreadsheetsService service, WorksheetEntry entry)
        {
            AtomLink  cellFeedLink = entry.Links.FindService(GDataSpreadsheetsNameTable.CellRel, null);
            CellQuery query        = new CellQuery(cellFeedLink.HRef.ToString());

            Console.WriteLine();

            Console.Write("Row of cell to update? ");
            string row = Console.ReadLine();

            Console.Write("Column of cell to update? ");
            string column = Console.ReadLine();

            query.MinimumRow    = query.MaximumRow = uint.Parse(row);
            query.MinimumColumn = query.MaximumColumn = uint.Parse(column);

            CellFeed  feed = service.Query(query);
            CellEntry cell = feed.Entries[0] as CellEntry;

            Console.WriteLine();
            Console.WriteLine("Current cell value: {0}", cell.Cell.Value);
            Console.Write("Enter a new value: ");
            string newValue = Console.ReadLine();

            cell.Cell.InputValue = newValue;
            AtomEntry updatedCell = cell.Update();

            Console.WriteLine("Successfully updated cell: {0}", updatedCell.Content.Content);
        }
        public DictionaryTable Download(string sheetName)
        {
            var            service   = new SpreadsheetsService(applicationName);
            WorksheetEntry worksheet = GetWorksheetEntres(service).FirstOrDefault(e => e.Title.Text == sheetName) as WorksheetEntry;

            if (worksheet == null)
            {
                return(null);
            }
            List <DictionaryItem> retval = new List <DictionaryItem>();

            // Fetch the cell feed of the worksheet.
            CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);

            cellQuery.MaximumColumn = 2;

            CellFeed cellFeed = service.Query(cellQuery);

            for (int i = 0; i < cellFeed.Entries.Count; i = i + 2)
            {
                retval.Add(
                    new DictionaryItem(new string[]
                                       { ((CellEntry)cellFeed.Entries[i]).Value, ((CellEntry)cellFeed.Entries[i + 1]).Value }));
            }
            return(new DictionaryTable(sheetName, retval.ToArray()));
        }
예제 #7
0
        public Google2uWorksheet(WorksheetEntry in_entry, Service in_service, WorkbookBase in_base)
        {
            WorksheetEntry = in_entry;
            MyWorkbook     = in_base;
            WorksheetName  = WorksheetEntry.Title.Text;
            Prefix         = "worksheet" + WorksheetName.Replace(' ', '_');
            MyService      = in_service;

            MyCleanupQuery = new CellQuery(in_entry.CellFeedLink);
            MyCellQuery    = new CellQuery(in_entry.CellFeedLink)
            {
                ReturnEmpty = ReturnEmptyCells.yes
            };

            _ComboBoxList = new GUIContent[Convert.ToInt32(SupportedType.Unrecognized)];
            var iter = 0;

            foreach (var enumval in Enum.GetValues(typeof(SupportedType)))
            {
                if ((SupportedType)enumval == SupportedType.Unrecognized)
                {
                    break;
                }
                _ComboBoxList[iter] = new GUIContent(Convert.ToString(enumval));
                iter++;
            }
        }
예제 #8
0
        private string ToGoogleTable()
        {
            WorksheetFeed  wsFeed    = TargetTable.Worksheets;
            WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[0];
            // Define the URL to request the list feed of the worksheet.
            AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

            // Fetch the list feed of the worksheet.
            ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());
            ListFeed  listFeed  = service.Query(listQuery);

            CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);
            CellFeed  cellFeed  = service.Query(cellQuery);

            CellEntry cellEntry = new CellEntry(1, 1, "oid");

            cellFeed.Insert(cellEntry);
            cellEntry = new CellEntry(1, 2, "value");
            cellFeed.Insert(cellEntry);
            cellEntry = new CellEntry(1, 3, "type");
            cellFeed.Insert(cellEntry);
            ProgressBarSetStartParams(progressBar1, ListData[ListData.Count - 1].Count);
            tabControlShow(progressBar1);
            tabControlShow(label3);
            for (int i = 0; i < ListData[ListData.Count - 1].Count; i++)
            {
                IncrementProgressbar(progressBar1);
                IncrementGeneralLabel(string.Format("Выполнено {0}/{1}", i + 1, ListData[ListData.Count - 1].Count));
                service.Insert(listFeed, ListData[ListData.Count - 1].GetCustom(i));
            }
            tabControlShow(progressBar1, false);
            tabControlShow(label3, false);
            return("Данные записаны");
        }
예제 #9
0
        private static WorksheetEntry GetWorkSheetEntry(string sheetId)
        {
            WorksheetEntry wsEntry = null;

            try
            {
                if (null == sheetsService)
                {
                    sheetsService = GetUserCredential();
                }

                if (null != sheetsService)
                {
                    WorksheetQuery worksheetquery = new WorksheetQuery("https://spreadsheets.google.com/feeds/worksheets/" + sheetId + "/private/full");
                    WorksheetFeed  wsFeed         = sheetsService.Query(worksheetquery);

                    if (wsFeed.Entries.Count > 0)
                    {
                        wsEntry = (WorksheetEntry)wsFeed.Entries[0];
                    }

                    if (null != wsEntry)
                    {
                        //create headers if missing
                        bool updatedHeaders = UpdateHeaders(wsEntry);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Failed to get Google Worksheet.\n" + ex.Message, "Get Work Sheet Entry", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            return(wsEntry);
        }
예제 #10
0
        public bool Process()
        {
            Debug.WriteLine("start LoadMissionResultEntry");
            WorksheetEntry sheet = GetWorksheet("Mission");

            if (sheet == null)
            {
                _finishCallback(false);
                return(false);
            }

            var list = Query(sheet);

            lock (((ICollection)_missionResultLog).SyncRoot)
            {
                foreach (var row in list)
                {
                    var it = new LogData.MissionResultInfo(row);
                    it.MemberID = _memberId;
                    it.Number   = _missionResultLog.Count + 1;
                    _missionResultLog.Add(it);
                }
            }
            _finishCallback(true);
            return(true);
        }
예제 #11
0
        private static void AddNewLocalisation(string key, string text)
        {
            WorksheetEntry worksheet = GetWorksheet();

            uint row = ++worksheet.Rows;

            worksheet.Update();

            CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);

            cellQuery.MinimumRow    = row;
            cellQuery.ReturnEmpty   = ReturnEmptyCells.yes;
            cellQuery.MinimumColumn = 1;
            cellQuery.MaximumColumn = 2;
            CellFeed cellFeed = ss.Query(cellQuery);

            foreach (CellEntry cell in cellFeed.Entries)
            {
                switch (cell.Column)
                {
                case 1:
                    cell.InputValue = key;
                    break;

                case 2:
                    cell.InputValue = text;
                    break;
                }

                cell.Update();
            }
        }
예제 #12
0
        private Dictionary <string, JobInfo> getGoogleDocsJobs()
        {
            Dictionary <string, JobInfo> jobs = new Dictionary <string, JobInfo>();

            WorksheetEntry ws        = this.getDataWorksheet();
            AtomLink       feedLink  = ws.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);
            ListQuery      listQuery = new ListQuery(feedLink.HRef.ToString());
            ListFeed       feed      = this.service.Query(listQuery);

            foreach (ListEntry row in feed.Entries)
            {
                string key  = null;
                string col1 = null;
                string col2 = null;
                foreach (ListEntry.Custom element in row.Elements)
                {
                    if (key == null)
                    {
                        key = element.Value;
                    }
                    else if (col1 == null)
                    {
                        col1 = element.Value;
                    }
                    else if (col2 == null)
                    {
                        col2 = element.Value;
                    }
                }
                jobs.Add(key, new JobInfo(key, col1, col2));
            }
            return(jobs);
        }
예제 #13
0
        public bool Process()
        {
            Debug.WriteLine("start LoadMaterialChangeEntry");
            WorksheetEntry sheet = GetWorksheet("Materials");

            if (sheet == null)
            {
                _finishCallback(false);
                return(false);
            }

            sheet = CheckColumns(sheet, LogData.MaterialChangeInfo.SpreadsheetColumnTitle());

            var list = Query(sheet);

            lock (((ICollection)_materialsChangeLog).SyncRoot)
            {
                foreach (var row in list)
                {
                    var it = new LogData.MaterialChangeInfo(row);
                    it.MemberID = _memberId;
                    it.Number   = _materialsChangeLog.Count + 1;
                    if (_materialsChangeLog.Count > 0)
                    {
                        it.PrevItem = _materialsChangeLog.Last();
                    }

                    _materialsChangeLog.Add(it);

                    _postCallback(it);
                }
            }
            _finishCallback(true);
            return(true);
        }
예제 #14
0
        public void CellQuery(WorksheetEntry worksheet)
        {
            // Fetch the cell feed of the worksheet.
            CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);
            //cellQuery.ModifiedSince = new DateTime(2013, 9, 1);
            //cellQuery.StartDate = new DateTime(2013, 9, 18);
            //cellQuery.MinPublication = new DateTime(2013, 9, 18);

            CellFeed cellFeed = this.Service.Query(cellQuery);

            // Iterate through each cell, printing its value.
            foreach (CellEntry cell in cellFeed.Entries)
            {
                Console.WriteLine(cell.Edited.DateValue);

                // Print the cell's address in A1 notation
                Console.WriteLine(cell.Title.Text);
                // Print the cell's address in R1C1 notation
                Console.WriteLine(cell.Id.Uri.Content.Substring(cell.Id.Uri.Content.LastIndexOf("/") + 1));
                // Print the cell's formula or text value
                Console.WriteLine(cell.InputValue);
                // Print the cell's calculated value if the cell's value is numeric
                // Prints empty string if cell's value is not numeric
                Console.WriteLine(cell.NumericValue);
                // Print the cell's displayed value (useful if the cell has a formula)
                Console.WriteLine(cell.Value);

                Console.ReadLine();
            }
        }
예제 #15
0
        public void ListQuery(WorksheetEntry worksheet)
        {
            // Define the URL to request the list feed of the worksheet.
            AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

            // Fetch the list feed of the worksheet.
            ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());

            //listQuery.MinPublication = new DateTime(2013, 9, 18);
            //listQuery.ModifiedSince = new DateTime(2013, 9, 18);
            listQuery.StartDate = new DateTime(2013, 9, 18);

            ListFeed listFeed = this.Service.Query(listQuery);

            Console.WriteLine("Results {0}", listFeed.Entries.Count);

            for (int rowIdx = 0; rowIdx < 10; rowIdx++)
            {
                // TODO: Choose a row more intelligently based on your app's needs.
                ListEntry row = (ListEntry)listFeed.Entries[rowIdx];


                // Update the row's data.
                foreach (ListEntry.Custom element in row.Elements)
                {
                    Console.WriteLine(element.LocalName + " : " + element.Value);
                    Console.ReadLine();
                }
            }
        }
예제 #16
0
        static void Main(string[] args)
        {
            Environment.CurrentDirectory = Environment.CurrentDirectory.Substring(0, Environment.CurrentDirectory.LastIndexOf("osum", StringComparison.Ordinal)) + @"\osum\osum\Localisation\";
            ss.setUserCredentials("*****@*****.**", "osumisawsum");

            SpreadsheetFeed feed = ss.Query(new SpreadsheetQuery());

            SpreadsheetEntry sheet = null;

            //get spreadsheet
            foreach (var entry in feed.Entries.OfType <SpreadsheetEntry>())
            {
                if (entry.Title.Text == "osu!stream localisation")
                {
                    sheet = entry;
                    break;
                }
            }

            if (sheet == null)
            {
                Console.WriteLine("failed to get spreadsheet");
                Console.ReadLine();
            }

            //get worksheet
            AtomLink       link  = sheet.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null);
            WorksheetQuery query = new WorksheetQuery(link.HRef.ToString());
            WorksheetFeed  wfeed = ss.Query(query);


            WorksheetEntry worksheet = wfeed.Entries[0] as WorksheetEntry;

            ProcessWorksheet(worksheet);
        }
예제 #17
0
        public DictionaryTable Download(string sheetName)
        {
            SpreadsheetsService service = new SpreadsheetsService(applicationName);

            service.setUserCredentials(userName, password);
            WorksheetEntry worksheet = this.GetWorksheetEntrees(service).FirstOrDefault(e => e.Title.Text == sheetName);

            if (worksheet == null)
            {
                return(null);
            }

            CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);

            cellQuery.MaximumColumn = 2;

            CellFeed cellFeed            = service.Query(cellQuery);
            List <DictionaryItem> retval = new List <DictionaryItem>();

            for (int i = 0; i < cellFeed.Entries.Count; i = i + 2)
            {
                retval.Add(
                    new DictionaryItem(new string[] { ((CellEntry)cellFeed.Entries[i]).Value, ((CellEntry)cellFeed.Entries[i + 1]).Value }));
            }
            return(new DictionaryTable(sheetName, retval.ToArray()));
        }
예제 #18
0
        /// <summary>
        /// カラム数が変わっていたら表を拡張してカラム名を更新
        /// </summary>
        /// <param name="wsEntry"></param>
        /// <param name="columns"></param>
        /// <returns></returns>
        protected WorksheetEntry CheckColumns(WorksheetEntry wsEntry, string[] columns)
        {
            if (columns.Length > wsEntry.Cols)
            {
                wsEntry.Cols = (uint)columns.Length;

                WorksheetEntry newEntry = (WorksheetEntry)wsEntry.Update();

                /*
                 * http://stackoverflow.com/questions/22719170/updating-cell-in-google-spreadsheets-returns-error-missing-resource-version-id
                 * http://stackoverflow.com/questions/20841411/google-spreadsheets-api-c-sharp-missing-resource-version-id-on-batch-update/23438381
                 *
                 * ETag:*をするとか、そもそもBatchよりPublishの方が分かりやすい、とか。
                 */
                CellFeed cellFeed = wsEntry.QueryCellFeed();

                uint col = 1;
                foreach (var it in columns)
                {
                    CellEntry batchEntry = cellFeed[1, col++];
                    batchEntry.InputValue = it;
                    batchEntry.Etag       = "*";
                }
                cellFeed.Publish();

                return(newEntry);
            }
            return(wsEntry);
        }
예제 #19
0
        public WorksheetEntry GetWorksheetEntry(string name)
        {
            /*
             * var link = entry.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null);
             * var wsFeed = (WorksheetFeed) client.SpreadsheetService.Query(new WorksheetQuery(link.HRef.ToString()) {Title = name, Exact = true});
             * if (wsFeed.Entries.Count == 0)
             *  return null;
             *
             * return (WorksheetEntry)wsFeed.Entries [0];
             */

            SpreadsheetEntry spreadsheet = this.entry as SpreadsheetEntry;
            WorksheetFeed    wsFeed      = spreadsheet.Worksheets;

            // Iterate through each worksheet in the spreadsheet.
            WorksheetEntry worksheetEntry = null;

            foreach (WorksheetEntry entry in wsFeed.Entries)
            {
                // Retrieve worksheet with the given name.
                if (entry.Title.Text == name)
                {
                    worksheetEntry = entry;
                }
            }

            return(worksheetEntry);
        }
예제 #20
0
        public bool Process()
        {
            Debug.WriteLine("start AddMissionResultEntry");
            WorksheetEntry sheet = GetWorksheet("Mission");

            if (sheet == null)
            {
                _finishCallback(false);
                return(false);
            }

            ListFeed listFeed = _wrapper.Query(sheet);

            //ListEntry listRow = new ListEntry();
            ListEntry row = (ListEntry)listFeed.CreateFeedEntry();

            foreach (var it in _info.KeyValue)
            {
                row.Add(it);
            }

            listFeed.Insert(row);

            _finishCallback(true);
            return(true);
        }
예제 #21
0
        private void UpdateListFeed()
        {
            WorksheetEntry worksheet    = (WorksheetEntry)worksheetFeed.Entries[0];
            AtomLink       listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);
            ListQuery      listQuery    = new ListQuery(listFeedLink.HRef.ToString());

            listFeed = spreadsheetsService.Query(listQuery);
        }
예제 #22
0
        private ListFeed GetWorksheetFeed(WorksheetEntry pWorksheetEntry)
        {
            AtomLink  wListFeedLink = pWorksheetEntry.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);
            ListQuery wquery        = new ListQuery(wListFeedLink.HRef.ToString());
            ListFeed  w2feed        = tService.Query(wquery);

            return(w2feed);
        }
예제 #23
0
        public ListFeed Query(WorksheetEntry wsEntry)
        {
            Debug.WriteLine("Try WorksheetQuery");
            AtomLink  listFeedLink = wsEntry.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);
            ListQuery listQuery    = new ListQuery(listFeedLink.HRef.ToString());

            return(Service.Query(listQuery));
        }
예제 #24
0
        /// <summary>
        /// Selects a worksheet.
        /// </summary>
        /// <param name="entry">The <typeparamref name="Google.GData.Spreadsheets.WorksheetEntry" /> which should be selected.</param>
        /// <exception cref="System.ArgumentNullException"><paramref name="entry"/> is null.</exception>
        public void SelectWorksheet(WorksheetEntry entry)
        {
            if (entry == null)
            {
                throw new ArgumentNullException("entry");
            }

            this.currentWorksheet = entry;
        }
예제 #25
0
        protected TranslationModule FromWorksheet(string project, WorksheetEntry worksheet)
        {
            // Define the URL to request the list feed of the worksheet.
            AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

            // Fetch the list feed of the worksheet.
            ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());
            ListFeed  listFeed  = this.Service.Query(listQuery);

            Console.WriteLine("Results {0}", listFeed.Entries.Count);

            List <string> languages = new List <string>();
            var           dicts     = new Dictionary <string, Dictionary <string, string> >();
            var           comments  = new Dictionary <string, string>();

            //language information is in first row
            var firstRow = (ListEntry)listFeed.Entries[0];

            for (int column = 1; column < firstRow.Elements.Count; column++)
            {
                var lang = firstRow.Elements[column].LocalName;
                languages.Add(lang);
                dicts.Add(lang, new Dictionary <string, string>());
            }

            var tp = new TranslationModule(project, "en", languages.ToArray());

            for (int rowIdx = 1; rowIdx < listFeed.Entries.Count; rowIdx++)
            {
                ListEntry row     = (ListEntry)listFeed.Entries[rowIdx];
                string    comment = null;

                string key = row.Elements[0].Value;                 // first column is the key
                // Update the row's data.
                for (int column = 1; column < row.Elements.Count; column++)
                {
                    var element = row.Elements[column];

                    //in list based feeds localname always correponds to first row
                    if (element.LocalName.ToLower() == "comment")
                    {
                        comment = element.Value;
                    }
                    else
                    {
                        tp.Add(new Segment(element.LocalName, key, element.Value));
                    }
                }

                foreach (var seg in tp.ByKey[key])
                {
                    seg.Comment = comment;
                }
            }

            return(tp);
        }
예제 #26
0
        public CellFeed GetCellFeed(int sheetNum)
        {
            WorksheetFeed  wsFeed    = spreadSheetEntry.Worksheets;
            WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[sheetNum];
            CellQuery      cellQuery = new CellQuery(worksheet.CellFeedLink);
            CellFeed       cellFeed  = service.Query(cellQuery);

            return(cellFeed);
        }
예제 #27
0
        public WorksheetEntry getDataWorksheet()
        {
            WorksheetEntry found = searchForSpreadsheet(this.googleAppName);

            if (found == null)
            {
                found = createSpreadSheet(this.googleAppName);
            }
            return(found);
        }
예제 #28
0
        public void getValues(string sheetName, DataSet dataSet)
        {
            var tableName = sheetName;

            if (dataSet.Tables[tableName] == null)
            {
                tableName = sheetName + "_";
            }
            if (dataSet.Tables[tableName] == null)
            {
                throw new ArgumentException("Neither " + sheetName + " nor " + sheetName + "_ tables could be found in the passed dataset!!!");
            }
            DataColumnCollection columnNames = dataSet.Tables[tableName].Columns;
            WorksheetEntry       entry       = (WorksheetEntry)m_worksheets[sheetName];

            if (entry == null)
            {
                string message = sheetName + " not found in " + m_spreadsheetName;
                Trace.WriteLine(message);
                throw new ArgumentNullException(message);
            }
            AtomLink listFeedLink = entry.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

            ListQuery query = new ListQuery(listFeedLink.HRef.ToString());
            ListFeed  feed  = m_service.Query(query);

            Trace.WriteLine("Found " + feed.Entries.Count + " rows of data in " + sheetName);
            if (feed.Entries.Count > 0)
            {
                ListEntry worksheetRow = (ListEntry)feed.Entries[0];
                ListEntry.CustomElementCollection elements = worksheetRow.Elements;
                for (int j = 0; j < feed.Entries.Count; ++j)
                {
                    worksheetRow = (ListEntry)feed.Entries[j];
                    elements     = worksheetRow.Elements;
                    DataRow workRow = dataSet.Tables[tableName].NewRow();
                    for (int i = 0; i < elements.Count; ++i)
                    {
                        string value = "" + elements[i].Value;
                        Type   type  = columnNames[i].DataType;
                        if (type == System.Type.GetType("System.Double") && string.IsNullOrWhiteSpace(value))
                        {
                            value = "0";
                        }
                        if (type == System.Type.GetType("System.Int32") && string.IsNullOrWhiteSpace(value))
                        {
                            value = "0";
                        }
                        workRow[columnNames[i].ColumnName] = value;
                    }
                    dataSet.Tables[tableName].Rows.Add(workRow);
                }
            }
            return;
        }
예제 #29
0
        public ListFeed GetListFeed(int sheetNum)
        {
            WorksheetFeed  wsFeed    = spreadSheetEntry.Worksheets;
            WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[sheetNum];

            AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

            ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());

            return(service.Query(listQuery));
        }
예제 #30
0
        /// <summary>
        /// Get Worksheets in the given <paramref name="spreadsheet"/>.
        /// </summary>
        /// <param name="spreadsheet">The <typeparamref name="Google.GData.Spreadsheets.SpreadsheetEntry" /> from which the worksheets should be returned.</param>
        /// <returns>Returns a <typeparamref name="Google.GData.Spreadsheets.WorksheetEntry" /> array.</returns>
        public virtual WorksheetEntry[] GetWorksheets(SpreadsheetEntry spreadsheet)
        {
            if (spreadsheet == null)
            {
                spreadsheet = GetSpreadsheets()[0];
            }

            var result = new WorksheetEntry[spreadsheet.Worksheets.Entries.Count];

            spreadsheet.Worksheets.Entries.CopyTo(result, 0);
            return(result);
        }
 public void Init()
 {
     entry = new WorksheetEntry();
 }