Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Make existing excel file password protected

by 1nickt (Abbot)
on Nov 03, 2017 at 12:09 UTC ( #1202681=note: print w/replies, xml ) Need Help??

in reply to Make existing excel file password protected

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; use Excel::Writer::XLSX; 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' ); $worksheet->protect('s3kr1t'); __END__
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.

Replies are listed 'Best First'.
Re^2: Make existing excel file password protected
by dasgar (Priest) on Nov 03, 2017 at 20:17 UTC

    If you're on a Windows system and have Excel installed, you can use Win32::OLE to automate Excel. Anything that you can do manually in Excel is possible to do via Win32::OLE. But this is a case of Perl automating an external program (Excel). Personally I have not used any of the modules that attempt to manipulate Excel files without using Excel itself, so I can't comment on their capabilities or suggest an alternative.

Re^2: Make existing excel file password protected
by dgupta (Initiate) on Nov 03, 2017 at 17:03 UTC
    I had tried Excel::Writer::XLSX, it only protect something to write on it..Not making excel file password protected.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1202681]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2021-10-21 11:50 GMT
Find Nodes?
    Voting Booth?
    My first memorable Perl project was:

    Results (83 votes). Check out past polls.