The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::Google::Spreadsheets::Row - A representation class for Google Spreadsheet row.

SYNOPSIS

  use Net::Google::Spreadsheets;

  my $service = Net::Google::Spreadsheets->new(
    username => 'mygoogleaccount@example.com',
    password => 'mypassword',
  );

  # get a row
  my $row = $service->spreadsheet(
    {
        title => 'list for new year cards',
    }
  )->worksheet(
    {
        title => 'Sheet1',
    }
  )->row(
    {
        sq => 'id = 1000'
    }
  );

  # get the content of a row
  my $hashref = $row->content;
  my $id = $hashref->{id};
  my $address = $hashref->{address};

  # update a row
  $row->content(
    {
        id => 1000,
        address => 'somewhere',
        zip => '100-0001',
        name => 'Nobuo Danjou',
    }
  );

  # get and set values partially
  
  my $value = $row->param('name');
  # returns 'Nobuo Danjou'

  # it's same by getting via param method without args, or content method:
  my $value_by_param = $row->param->{name};
  my $value_by_content = $row->content->{name};
  
  my $newval = $row->param({address => 'elsewhere'});
  # updates address (and keeps other fields) and returns new row value (with all fields)

  my $hashref2 = $row->param;
  # same as $row->content;

  # delete the row
  $row->delete;

METHODS

param

sets and gets content value.

delete

deletes the row.

CAVEATS

Space characters in hash key of rows will be removed when you access rows. See below.

  my $ws = Net::Google::Spreadsheets->new(
    username => 'me@gmail.com', 
    password => 'foobar'
  )->spreadsheet({titile => 'sample'})->worksheet(1);
  $ws->batchupdate_cell(
    {col => 1,row => 1, input_value => 'name'},
    {col => 2,row => 1, input_value => 'mail address'},
  ); 
  $ws->add_row(
    {
        name => 'my name',
        mailaddress => 'me@gmail.com',
  #      above passes, below fails.
  #      'mail address' => 'me@gmail.com',
    }
  );

Instead, Net::Google::Spreadsheets::Table and Net::Google::Spreadsheets::Record allows space characters in column name.

  my $s = Net::Google::Spreadsheets->new(
    username => 'me@gmail.com', 
    password => 'foobar'
  )->spreadsheet({titile => 'sample'});

  my $t = $s->add_table(
    {
        worksheet => $s->worksheet(1),
        columns => ['name', 'mail address'],
    }
  );
  $t->add_record(
    {
        name => 'my name',
        'mail address' => 'me@gmail.com',
    }
  );

ATTRIBUTES

content

Rewritable attribute. You can get and set the value. So it's the same thing to get the value with param method or content attribute.

  my $value = $row->param('foo');
  # it's same
  my $value2 = $row->content->{'foo'};

SEE ALSO

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::Spreadsheets

AUTHOR

Nobuo Danjou <nobuo.danjou@gmail.com>