Class: GoogleDrive::Spreadsheet
- Includes:
- Util
- Defined in:
- lib/google_drive/spreadsheet.rb
Overview
A spreadsheet.
Use methods in GoogleDrive::Session to get GoogleDrive::Spreadsheet object.
Constant Summary collapse
- SUPPORTED_EXPORT_FORMAT =
Set.new(%w(xlsx csv pdf))
Constants included from Util
Util::EXT_TO_CONTENT_TYPE, Util::IMPORTABLE_CONTENT_TYPE_MAP
Instance Attribute Summary
Attributes inherited from File
Instance Method Summary collapse
-
#add_worksheet(title, max_rows = 100, max_cols = 20) ⇒ Object
Adds a new worksheet to the spreadsheet.
-
#document_feed_url ⇒ Object
URL of feed used in the deprecated document list feed API.
-
#key ⇒ Object
Key of the spreadsheet.
-
#spreadsheet_feed_url ⇒ Object
Spreadsheet feed URL of the spreadsheet.
-
#worksheet_by_gid(gid) ⇒ Object
Returns a GoogleDrive::Worksheet with the given gid.
-
#worksheet_by_title(title) ⇒ Object
Returns a GoogleDrive::Worksheet with the given title in the spreadsheet.
-
#worksheets ⇒ Object
Returns worksheets of the spreadsheet as array of GoogleDrive::Worksheet.
-
#worksheets_feed_url ⇒ Object
URL of worksheet-based feed of the spreadsheet.
Methods included from Util
concat_url, construct_and_query, construct_query, convert_params, delegate_api_methods, encode_query, get_singleton_class, h
Methods inherited from File
#acl, #acl_feed_url, #available_content_types, #copy, #delete, #download_to_file, #download_to_io, #download_to_string, #export_as_file, #export_as_string, #export_to_io, #human_url, #initialize, #inspect, #reload_metadata, #rename, #resource_id, #resource_type, #title, #update_from_file, #update_from_io, #update_from_string
Constructor Details
This class inherits a constructor from GoogleDrive::File
Instance Method Details
#add_worksheet(title, max_rows = 100, max_cols = 20) ⇒ Object
Adds a new worksheet to the spreadsheet. Returns added GoogleDrive::Worksheet.
70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/google_drive/spreadsheet.rb', line 70 def add_worksheet(title, max_rows = 100, max_cols = 20) xml = <<-"EOS" <entry xmlns='http://www.w3.org/2005/Atom' xmlns:gs='http://schemas.google.com/spreadsheets/2006'> <title>#{h(title)}</title> <gs:rowCount>#{h(max_rows)}</gs:rowCount> <gs:colCount>#{h(max_cols)}</gs:colCount> </entry> EOS doc = @session.request(:post, worksheets_feed_url, data: xml) Worksheet.new(@session, self, doc.root) end |
#document_feed_url ⇒ Object
URL of feed used in the deprecated document list feed API.
33 34 35 |
# File 'lib/google_drive/spreadsheet.rb', line 33 def document_feed_url 'https://docs.google.com/feeds/documents/private/full/' + CGI.escape(resource_id) end |
#key ⇒ Object
Key of the spreadsheet.
22 23 24 |
# File 'lib/google_drive/spreadsheet.rb', line 22 def key id end |
#spreadsheet_feed_url ⇒ Object
Spreadsheet feed URL of the spreadsheet.
38 39 40 |
# File 'lib/google_drive/spreadsheet.rb', line 38 def spreadsheet_feed_url 'https://spreadsheets.google.com/feeds/spreadsheets/private/full/' + id end |
#worksheet_by_gid(gid) ⇒ Object
Returns a GoogleDrive::Worksheet with the given gid.
Returns nil if not found.
64 65 66 67 |
# File 'lib/google_drive/spreadsheet.rb', line 64 def worksheet_by_gid(gid) gid = gid.to_s worksheets.find { |ws| ws.gid == gid } end |
#worksheet_by_title(title) ⇒ Object
Returns a GoogleDrive::Worksheet with the given title in the spreadsheet.
Returns nil if not found. Returns the first one when multiple worksheets with the title are found.
57 58 59 |
# File 'lib/google_drive/spreadsheet.rb', line 57 def worksheet_by_title(title) worksheets.find { |ws| ws.title == title } end |
#worksheets ⇒ Object
Returns worksheets of the spreadsheet as array of GoogleDrive::Worksheet.
43 44 45 46 47 48 49 50 51 |
# File 'lib/google_drive/spreadsheet.rb', line 43 def worksheets doc = @session.request(:get, worksheets_feed_url) if doc.root.name != 'feed' fail(GoogleDrive::Error, "%s doesn't look like a worksheets feed URL because its root is not <feed>." % worksheets_feed_url) end doc.css('entry').map { |e| Worksheet.new(@session, self, e) }.freeze end |
#worksheets_feed_url ⇒ Object
URL of worksheet-based feed of the spreadsheet.
27 28 29 30 |
# File 'lib/google_drive/spreadsheet.rb', line 27 def worksheets_feed_url 'https://spreadsheets.google.com/feeds/worksheets/%s/private/full' % id end |