FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour How to input a password into a XLS file wirh OLE
Posts: 581
Joined: Tue Oct 11, 2005 11:28 AM
How to input a password into a XLS file wirh OLE
Posted: Fri Oct 31, 2008 12:22 PM

As the subject, I have a XLS file and it has a password. So, how to input it in order to open it?

Regards,

Kleyber Derick



FWH / xHb / xDevStudio / SQLLIB
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: How to input a password into a XLS file wirh OLE
Posted: Fri Oct 31, 2008 01:06 PM

Hint: WorkBooks:Open() method has a parameter called Password.

EMG

Posts: 581
Joined: Tue Oct 11, 2005 11:28 AM
How to input a password into a XLS file wirh OLE
Posted: Fri Oct 31, 2008 01:07 PM

Hi Enrico,

As usual, your help is fantastic. Just one more question: How to see the order of all the ::open() parameters? Can you show me?

Thanks a lot.

Kleyber Derick



FWH / xHb / xDevStudio / SQLLIB
Posts: 310
Joined: Sun Jan 08, 2006 10:09 PM
How to input a password into a XLS file wirh OLE
Posted: Fri Oct 31, 2008 01:14 PM

Hi,

To save use the third parameter in the method SaveAs of WorkBook object

FUNCTION MAIN()
LOCAL oExcel := CREATEOBJECT( "Excel.Application" )
LOCAL oWorkbook := oExcel:Workbooks
LOCAL oSheet := oExcel:ActiveSheet
...
savefile := oWorkbook.SaveAs( fileXL, ,"YourPassWord" )
...
RETURN NIL

Posts: 581
Joined: Tue Oct 11, 2005 11:28 AM
How to input a password into a XLS file wirh OLE
Posted: Fri Oct 31, 2008 01:24 PM

SET PORTUGUESE ON

Fala Rochinha,

Não é bem isso que eu preciso. Eu tenho um arquivo XLS que está protegido por senha e eu tenho essa senha. Daí eu preciso somente abrir esse arquivo usando a senha...

Valeu,

SET ENGLISH ON

Hi Rochinha,

It's not exactly this what I need. I have a XLS file which is password protected and I already have this password. So, I need just open this file using the password.

Regards,

Kleyber Derick



FWH / xHb / xDevStudio / SQLLIB
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
How to input a password into a XLS file wirh OLE
Posted: Fri Oct 31, 2008 01:28 PM
Kleyber wrote:Hi Enrico,

As usual, your help is fantastic. Just one more question: How to see the order of all the ::open() parameters? Can you show me?

Thanks a lot.


Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMRU)


Please check VBA*.CHM help files or MSDN.

EMG
Posts: 581
Joined: Tue Oct 11, 2005 11:28 AM
How to input a password into a XLS file wirh OLE
Posted: Fri Oct 31, 2008 01:29 PM

Enrico,

Thank you!!!

Best Regards,

Kleyber Derick



FWH / xHb / xDevStudio / SQLLIB
Posts: 310
Joined: Sun Jan 08, 2006 10:09 PM
How to input a password into a XLS file wirh OLE
Posted: Sat Nov 01, 2008 06:52 AM
I think it is more complex.

You must determine if the password is in the spreadsheet or folder.

Use the example to improve the test in your XLS file.

#include "fivewin.ch"

FUNCTION main( fileXL ) 
    LOCAL oExcel, oWorkbook, nSheets

    oExcel := TOLEAuto():New( "Excel.Application" ) 
    oExcel:Visible     := .t.
    oExcel:UserControl := .t.

    oWorkbook := oExcel:Workbooks

    oWorkbook:Open( fileXL )

    oActiveWorkBook   := oExcel:ActiveWorkBook

    XLSisProtected( 1, oExcel:ActiveWorkBook, "" )

    nSheets := oActiveWorkBook:Sheets:Count()

    For i = 1 To nSheets
        oWS := oActiveWorkbook:Worksheets(i)
        oWS:Activate()
        XLSisProtected( 2, oWS, oWS:Name )
    Next

    oExcel:End()
    //oWorkbook:Open( fileXL,,,, "xlstest" )

    RETURN NIL

*
* *
* FUNCTION: Test if XLS file is protect
* *
*
FUNCTION XLSisProtected(n,oOBJ,sName)
    LOCAL isP := .t.
    If n==1
       isP := oOBJ:ProtectWindows
       isP := oOBJ:ProtectStructure
       If isP
          MsgStop( "IS Protected", "WorkBook Protection" )
       Else
          MsgStop( "IS NOT Protected", "WorkBook Protection" )
       EndIf
    Else
       isP := oOBJ:ProtectContents
       isP := oOBJ:ProtectDrawingObjects
       isP := oOBJ:ProtectScenarios
       If isP
          MsgStop( "IS Protected", "WorkBook "+sName+" Protection" )
       Else
          MsgStop( "IS NOT Protected", "WorkBook "+sName+" Protection" )
       EndIf
    EndIf
    Return(isP)

Continue the discussion