Net::Google::Spreadsheets - A Perl module for using Google Spreadsheets API.
use Net::Google::Spreadsheets; my $service = Net::Google::Spreadsheets->new( username => 'mygoogleaccount@example.com', password => 'mypassword' ); my @spreadsheets = $service->spreadsheets(); # find a spreadsheet by key my $spreadsheet = $service->spreadsheet( { key => 'key_of_a_spreasheet' } ); # find a spreadsheet by title my $spreadsheet_by_title = $service->spreadsheet( { title => 'list for new year cards' } ); # find a worksheet by title my $worksheet = $spreadsheet->worksheet( { title => 'Sheet1' } ); # create a worksheet my $new_worksheet = $spreadsheet->add_worksheet( { title => 'Sheet2', row_count => 100, col_count => 3, } ); # update cell by batch request $worksheet->batchupdate_cell( {row => 1, col => 1, input_value => 'name'}, {row => 1, col => 2, input_value => 'nick'}, {row => 1, col => 3, input_value => 'mail'}, {row => 1, col => 4, input_value => 'age'}, ); # get a cell my $cell = $worksheet->cell({col => 1, row => 1}); # update input value of a cell $cell->input_value('new value'); # add a row my $new_row = $worksheet->add_row( { name => 'Nobuo Danjou', nick => 'lopnor', mail => 'nobuo.danjou@gmail.com', age => '33', } ); # fetch rows my @rows = $worksheet->rows; # or fetch rows with query @rows = $worksheet->rows({sq => 'age > 20'}); # search a row my $row = $worksheet->row({sq => 'name = "Nobuo Danjou"'}); # update content of a row $row->content( { nick => 'lopnor', mail => 'nobuo.danjou@gmail.com', } ); # delete the row $row->delete; # delete the worksheet $worksheet->delete; # create a table my $table = $spreadsheet->add_table( { worksheet => $new_worksheet, columns => ['name', 'nick', 'mail address', 'age'], } ); # add a record my $record = $table->add_record( { name => 'Nobuo Danjou', nick => 'lopnor', 'mail address' => 'nobuo.danjou@gmail.com', age => '33', } ); # find a record my $found = $table->record( { sq => '"mail address" = "nobuo.danjou@gmail.com"' } ); # delete it $found->delete; # delete table $table->delete;
Net::Google::Spreadsheets is a Perl module for using Google Spreadsheets API.
Creates Google Spreadsheet API client. It takes arguments below:
username
Username for Google. This should be full email address format like 'mygoogleaccount@example.com'.
password
Password corresponding to the username.
source
Source string to pass to Net::Google::AuthSub.
returns list of Net::Google::Spreadsheets::Spreadsheet objects. Acceptable arguments are:
title
title of the spreadsheet.
title-exact
whether title search should match exactly or not.
key
key for the spreadsheet. You can get the key via the URL for the spreadsheet. http://spreadsheets.google.com/ccc?key=key
Returns first item of spreadsheets(\%condition) if available.
you can optionally pass auth object argument when initializing Net::Google::Spreadsheets instance.
If you want to use AuthSub mechanism, make Net::Google::DataAPI::Auth::AuthSub object and path it to the constructor:
my $authsub = Net::Google::AuthSub->new; $authsub->auth(undef, $session_token); my $service = Net::Google::Spreadsheet->new( auth => $authsub );
In OAuth case, like this:
my $oauth = Net::Google::DataAPI::Auth::OAuth->new( consumer_key => 'consumer.example.com', consumer_secret => 'mys3cr3t', callback => 'http://consumer.example.com/callback', ); $oauth->get_request_token; my $url = $oauth->get_authorize_token_url; # show the url to the user and get the $verifier value $oauth->get_access_token({verifier => $verifier}); my $service = Net::Google::Spreadsheet->new( auth => $oauth );
To test this module, you have to prepare as below.
create a spreadsheet by hand
Go to http://docs.google.com and create a spreadsheet.
set SPREADSHEET_TITLE environment variable
export SPREADSHEET_TITLE='my test spreadsheet'
or so.
set username and password for google.com via Config::Pit
install Config::Pit and type
ppit set google.com
then some editor comes up and type your username and password like
--- username: myname@gmail.com password: foobarbaz
run tests
as always,
perl Makefile.PL make make test
Nobuo Danjou <nobuo.danjou@gmail.com>
http://code.google.com/intl/en/apis/spreadsheets/docs/3.0/developers_guide_protocol.html
http://code.google.com/intl/en/apis/spreadsheets/docs/3.0/reference.html
Net::Google::AuthSub
Net::Google::DataAPI
Net::OAuth
Net::Google::Spreadsheets::Spreadsheet
Net::Google::Spreadsheets::Worksheet
Net::Google::Spreadsheets::Cell
Net::Google::Spreadsheets::Row
Net::Google::Spreadsheets::Table
Net::Google::Spreadsheets::Record
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Net::Google::Spreadsheets, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Google::Spreadsheets
CPAN shell
perl -MCPAN -e shell install Net::Google::Spreadsheets
For more information on module installation, please visit the detailed CPAN module installation guide.