FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Excel está instalado?
Posts: 492
Joined: Wed Nov 16, 2005 12:03 PM
Excel está instalado?
Posted: Thu Jul 13, 2023 01:24 PM

Saludos,

Necesito determina si excel está instalador para evitar incidencia en mi aplicación, evitando que el usuario lo reporte como una falla. preferiblemente indicarle mediante mensaje : Por favor instale excel.

Agradecidos por sus aportes.

Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Excel está instalado?
Posted: Thu Jul 13, 2023 02:04 PM
MI estimado, buenos dias
Code (fw): Select all Collapse
Function ImportarProv(oCn)
local cExcel, oExcel, oHoja, oWorkBook, nROws, nROs, cTmp, cNRuc, cNomb, nROw, cINsert, lOk, oDat

Return(Nil)

cExcel := cGetFile( "XLSx (*.xlsx)| *.xls|*.xlsx", "Seleccione la Hoja Excel", 2 ) ;

IF EMPTY(cExcel)
  Return(Nil)
EndIf

TRY
  oExcel:= TOleAuto():New("Excel.Application")
CATCH
  MsgInfo("La Hoja de Calculo No Está Instala", "Alerta")
  Return(Nil)
END

oExcel:Visible := .f. // .t. por si quieres ver la hoja abierta
oWorkbook := oExcel:WorkBooks:OPEN(cExcel)

oWorkbook := oExcel:GET("ActiveWorkBook")
oHoja := oExcel:GET("ActiveSheet")

nRows := oHoja:UsedRange:Rows:Count()

FOR nRow := 2 TO nRows           // obviamos los nombres de columnas

    CURSORWAIT()

    cTmp := oHoja:Cells(nRow, 1):Value

    TRY

    IF VALTYPE(cTmp) = "N"
       cNRuc := ALLTRIM(STR(cTmp,11,0))
    EndIf
    If VALTYPE(cTmp) = "U"
       cNRUc := "00000000"
    EndIf
    If VALTYPE(cTmp) = "C"
       cNRuc := ALLTRIM(cTmp)
    EndIf

    cTmp := oHoja:Cells(nRow, 2):Value
    IF VALTYPE(cTmp) <> "C"
       cNomb := "NN"
      Else
       cNomb := ALLTRIM(cTmp)
    EndIf

    CATCH
      cNomb := "NN"
    END

    cNomb := UPPER(ALLTRIM(cNomb))
    cNomb := LimpiaChar(cNomb)

    oDat := SQLQry(oCn, oDat, "SELECT ruc_dni FROM proveedor WHERE ruc_dni = '" + cNRuc + "'")

    If oDat:RecCount() = 0
        cInsert := "INSERT IGNORE INTO proveedor SET ruc_dni = '" + cNRuc + "', razon_social = '" + cNomb + "'"
      TRY
        lOk := SQLExec(oCn, cInsert)
      CATCH
        lOK := .t.
      END
    EndIf

    SysRefresh()

NEXT nRow

oWorkBook:CLOSE( .F. )    //oExcel:WorkBooks:End()
oExcel:Quit()
oExcel := NIL

CURSORARROW()
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Excel está instalado?
Posted: Thu Jul 13, 2023 02:56 PM
Code (fw): Select all Collapse
// C:\FWH\SAMPLES\EXCELREM.PRG - kapiabafwh@gmail.com - 23/09/2022

#Include "FiveWin.ch"

// Defines para o segundo parâmetro - Ejemplo by Rochinha. FiveWin Brasil.

#define xlCSV            6 //        CSV    *.csv
#define xlCSVMSDOS      24 //        MSDOS CSV    *.csv
#define xlCSVWindows    23 //        Windows CSV    *.csv
#define xlDBF3           8 //        Dbase 3 format    *.dbf
#define xlExcel8        56 //        Excel 97-2003 Workbook    *.xls
#define xlHtml          44 //        HTML format    *.htm; *.html
#define xlTextMSDOS     21 //        MSDOS Text    *.txt

FUNCTION Main()

   HB_GCALL( .F. )

   SET CENTURY ON
   SET DATE BRITISH
   SET TIME FORMAT TO "HH:MM:SS"
   SET EPOCH TO YEAR( DATE() ) - 30
   SET SOFTSEEK OFF
   SET WRAP ON
   SETCANCEL( .F. )
   SET CONFIRM OFF
   SET DELETED ON
   SET _3DLOOK ON
   SET UNIQUE OFF
   SET ESCAPE OFF
   SET EXACT ON  // CONTROLA O :=, = e ==
   SET EXCLUSIVE OFF
   SET MULTIPLE OFF

   MsgRun( "AGUARDE... ABRINDO OS BANCOS DE DADOS.   ",                      ;
           "Por Favor, Espere Abertura. Pode demorar.",                      ;
           { || WinExec( Excel_Remtec() ), 3 } )

   DbCommitAll()
   DbUnLockAll()
   DbCloseAll()
   FreeResources()
   Release All
   SysRefresh()
   HB_GCALL( .T. )

   CLEAR MEMORY

   PostQuitMessage( 0 )

   QUIT

RETURN NIL

FUNCTION Excel_Remtec()

   LOCAL oExcel, oWorkbook, oWorksheet

   TRY

      oExcel := TOleAuto():New( "Excel.Application" )

   CATCH

      TRY

         oExcel = CreateObject( "Excel.Application" )

      CATCH

         MsgInfo( "Excel is not installed on this PC. " + ;
                  "You need Excel to continue", "Ooooopppsss" )

         RETURN( .F. )

      END

   END

   oWorkbook := oExcel:WorkBooks

   // Apertura del *.DBF
   oWorkbook:Open( "c:\temp\REMTEC.DBF" )

   oExcel:DisplayAlerts := .F.
   oExcel:Visible       := .T.

   oWorksheet := oExcel:Get( "ActiveSheet" )

   // Graba
   oWorksheet:SaveAs( "c:\temp\tabela.CSV",  6 ) // Segundo parâmetro informa o tipo de saída
   oWorksheet:SaveAs( "c:\temp\tabela.XLS", 56 ) // Segundo parâmetro informa o tipo de saída

RETURN NIL
// FIN
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Excel está instalado?
Posted: Thu Jul 13, 2023 06:13 PM
Code (fw): Select all Collapse
   oExcel   := ExcelObj()
   if oExcel == nil
      MsgAlert( FWString( "Excel not installed" ), FWString( "Alert" ) )
   endif
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

Continue the discussion