Hi, as far as I know you cannot password-protect a workbook from a Perl module. (Maybe it's possible with a Win32 module, unknown to me...) The following code "protects" the worksheet, requiring a password to change/add any data, but as noted in the doc for Excel::Writer::XLSX, the "protection" is very weak.
use strict; use warnings;
my $workbook = Excel::Writer::XLSX->new( '1202661.xlsx' );
my $worksheet = $workbook->add_worksheet();
$worksheet->write( 'A1', 'foo' );
$worksheet->write( 'B1', 'bar' );
$worksheet->write( 'A2', 'baz' );
$worksheet->write( 'B2', 'qux' );
If you want true encryption and password protection I think you will have to either perform that in Excel itself, or simply encrypt the file and mail it that way.
The way forward always starts with a minimal test.