poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From MSB <markbrd...@tiscali.co.uk>
Subject Re: writeProtectWorkbook() method does not work to set password to excel file to open
Date Wed, 16 Sep 2009 15:36:33 GMT

Sorry to say that I cannot report any real progress and that I am moving
toward the conclusion that it is not possible to set the open password for
an Excel file using POI.

As I indicated in an earlier post, I did try using a template file that I
created with Excel and which had an open password. Unfortunately, it was
not possible even to open this file using POI, closing that avenue of 
exploration quite conclusively.

The writeProtectWorkbook() method does work after a fashion; if you try
to open the file using Excel, you will be asked for a password but it is
still possible to view a read-only copy of it's contents even if you do
not supply a password.

Not too sure what your options are at this stage though I am confident many
people would appreciate it if you would consdier patching the API to support
setting the open password. Other than that, I would guess that you could 
look at;

* Creating an on activation macro that would prompt the user to enter
  a password.
* Using OpenOffices' UNO interface to automate the base application and use
  that to create Excel workbooks.
* Using OLE to control Excel itself directly from Java code.

None of these solutions is ideal in my opinion as each has it's own inherent
limitations but they could offer you a short term fix.


Mark B

Debendra wrote:
> Hi,
> Could anyone please help me to create a password protected excel sheet.
> The requirement is, password needs to be given to open an excel file. It
> will not open the excel file without password. I am using the following
> program, but it is not asking any password while opening.
> import java.io.;
> import org.apache.poi.hssf.usermodel.;
> class PasswordExcelSheet {
> public static void main(String arg[]) {
> try{
> FileOutputStream out = new
> FileOutputStream("D:\\java_prog\\excelsheet\\MyExcel.xls");
> HSSFWorkbook hssfworkbook = new HSSFWorkbook();
> hssfworkbook.writeProtectWorkbook("abc","xyz");
> HSSFSheet sheet = hssfworkbook.createSheet("new sheet");
> String s="HCL Tech";
> HSSFCellStyle cs = hssfworkbook.createCellStyle();
> HSSFDataFormat df = hssfworkbook.createDataFormat();
> HSSFFont f = hssfworkbook.createFont();
> HSSFFont f2 = hssfworkbook.createFont();
> cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));
> HSSFRow row = sheet.createRow((short)0);
> HSSFCell cell = row.createCell((short)0);
> cell.setCellValue(s );
> cell.setCellStyle(cs);
> //sheet.protectSheet("xyz");
> hssfworkbook.write(out);
> out.close();
> }
> catch(Exception e){
> System.out.println("Error : "+e);
> }
> }
> } 

View this message in context: http://www.nabble.com/writeProtectWorkbook%28%29-method-does-not-work-to-set-password-to-excel-file-to-open-tp25447832p25475012.html
Sent from the POI - User mailing list archive at Nabble.com.

To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org

View raw message