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.
Excel está instalado?
- Willi Quintana
- Posts: 1025
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: Excel está instalado?
MI estimado, buenos dias
Code: Select all | Expand
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()
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Excel está instalado?
Code: Select all | Expand
// 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
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Excel está instalado?
Code: Select all | Expand
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
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