The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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

https://developers.google.com/google-apps/spreadsheets/

Net::Google::AuthSub

Net::Google::Spreadsheets

AUTHOR

Nobuo Danjou <danjou@soffritto.org>