Class: GoogleDrive::Spreadsheet
- Includes:
- Util
- Defined in:
- lib/google_drive/spreadsheet.rb
Overview
A spreadsheet.
e.g., Use methods spreadsheet_by_title, spreadsheet_by_url, create_spreadsheet 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, index: nil) ⇒ Object
Adds a new worksheet to the spreadsheet.
-
#batch_update(requests) ⇒ Object
Performs batch update of the spreadsheet.
-
#document_feed_url ⇒ Object
URL of feed used in the deprecated document list feed API.
-
#download_to_file(_path, _params = {}) ⇒ Object
Not available for GoogleDrive::Spreadsheet.
-
#download_to_io(_io, _params = {}) ⇒ Object
Not available for GoogleDrive::Spreadsheet.
-
#download_to_string(_params = {}) ⇒ Object
Not available for GoogleDrive::Spreadsheet.
-
#key ⇒ Object
Key of the spreadsheet.
-
#spreadsheet_feed_url ⇒ Object
Spreadsheet feed URL of the spreadsheet.
-
#worksheet_by_sheet_id(sheet_id) ⇒ Object
(also: #worksheet_by_gid)
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, #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, index: nil) ⇒ Object
Adds a new worksheet to the spreadsheet. Returns added GoogleDrive::Worksheet.
When index
is specified, the worksheet is inserted at the given index
.
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/google_drive/spreadsheet.rb', line 79 def add_worksheet(title, max_rows = 100, max_cols = 20, index: nil) (response,) = batch_update([{ add_sheet: { properties: { title: title, index: index, grid_properties: { row_count: max_rows, column_count: max_cols, }, }, }, }]) Worksheet.new(@session, self, response.add_sheet.properties) end |
#batch_update(requests) ⇒ Object
Performs batch update of the spreadsheet.
requests
is an Array of Google::Apis::SheetsV4::Request or its Hash equivalent. Returns an Array of Google::Apis::SheetsV4::Response.
126 127 128 129 130 131 132 133 |
# File 'lib/google_drive/spreadsheet.rb', line 126 def batch_update(requests) batch_request = Google::Apis::SheetsV4::BatchUpdateSpreadsheetRequest.new( requests: requests) batch_response = @session.sheets_service.batch_update_spreadsheet(id, batch_request) batch_response.replies end |
#document_feed_url ⇒ Object
URL of feed used in the deprecated document list feed API.
40 41 42 43 |
# File 'lib/google_drive/spreadsheet.rb', line 40 def document_feed_url 'https://docs.google.com/feeds/documents/private/full/' + CGI.escape(resource_id) end |
#download_to_file(_path, _params = {}) ⇒ Object
Not available for GoogleDrive::Spreadsheet. Use export_as_file instead.
96 97 98 99 100 101 102 |
# File 'lib/google_drive/spreadsheet.rb', line 96 def download_to_file(_path, _params = {}) raise( NotImplementedError, 'download_to_file is not available for GoogleDrive::Spreadsheet. ' \ 'Use export_as_file instead.' ) end |
#download_to_io(_io, _params = {}) ⇒ Object
Not available for GoogleDrive::Spreadsheet. Use export_to_io instead.
114 115 116 117 118 119 120 |
# File 'lib/google_drive/spreadsheet.rb', line 114 def download_to_io(_io, _params = {}) raise( NotImplementedError, 'download_to_io is not available for GoogleDrive::Spreadsheet. ' \ 'Use export_to_io instead.' ) end |
#download_to_string(_params = {}) ⇒ Object
Not available for GoogleDrive::Spreadsheet. Use export_as_string instead.
105 106 107 108 109 110 111 |
# File 'lib/google_drive/spreadsheet.rb', line 105 def download_to_string(_params = {}) raise( NotImplementedError, 'download_to_string is not available for GoogleDrive::Spreadsheet. ' \ 'Use export_as_string instead.' ) end |
#key ⇒ Object
Key of the spreadsheet.
28 29 30 |
# File 'lib/google_drive/spreadsheet.rb', line 28 def key id end |
#spreadsheet_feed_url ⇒ Object
Spreadsheet feed URL of the spreadsheet.
46 47 48 |
# File 'lib/google_drive/spreadsheet.rb', line 46 def spreadsheet_feed_url 'https://spreadsheets.google.com/feeds/spreadsheets/private/full/' + id end |
#worksheet_by_sheet_id(sheet_id) ⇒ Object Also known as: worksheet_by_gid
Returns a GoogleDrive::Worksheet with the given gid.
Returns nil if not found.
67 68 69 70 |
# File 'lib/google_drive/spreadsheet.rb', line 67 def worksheet_by_sheet_id(sheet_id) sheet_id = sheet_id.to_i worksheets.find { |ws| ws.sheet_id == sheet_id } 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.
60 61 62 |
# File 'lib/google_drive/spreadsheet.rb', line 60 def worksheet_by_title(title) worksheets.find { |ws| ws.title == title } end |
#worksheets ⇒ Object
Returns worksheets of the spreadsheet as array of GoogleDrive::Worksheet.
51 52 53 54 |
# File 'lib/google_drive/spreadsheet.rb', line 51 def worksheets api_spreadsheet = @session.sheets_service.get_spreadsheet(id, fields: 'sheets.properties') api_spreadsheet.sheets.map{ |s| Worksheet.new(@session, self, s.properties) } end |
#worksheets_feed_url ⇒ Object
URL of worksheet-based feed of the spreadsheet.
33 34 35 36 37 |
# File 'lib/google_drive/spreadsheet.rb', line 33 def worksheets_feed_url format( 'https://spreadsheets.google.com/feeds/worksheets/%s/private/full', id ) end |