Hola:
He visto en las new una libreria (filexls) para pasar datos a una hoja excel, pero no he localizado como utilizarla.
Si alguien puede decirme como funciona y si me puede enviar un ejemplo, pues mejor que mejor.
Muchísimas gracias por vuestra colaboración.
Paco Martínez
Elche
--
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
TFileXls
-
- Mensajes: 475
- Registrado: Mar Jul 24, 2012 10:21 pm
TFileXls
Miras se le ayuda
************************************************************ ********************
procedure RelExcel(dt1, dt2, cAlias, bCond)
************************************************************ *******************
LOCAL pag:=0, cl:=0, nTot:=0, lin:=0, tot_ger:=0, cCabec:=""
LOCAL dData := CTOD(" / / "), aProduto := {}
LOCAL cTela := Savescreen(s_geral)
LOCAL nPos := 0
Local cPara
LOCAL getlist:={}, cTitulo1:="", cCliente:=""
LOCAL cArq :='', nLidos:=0
LOCAL oExcel, oSheet, cIntervalo, i, xTotalVend, xTotalCust, xTotalEstq, nLinPlan
SETCOLOR(vcn)
Produto->( ORDSETFOCUS('produto2') )
INDEX ON DTOS(DATA) + PEDIDO + PRCODI TO iTmpCotAgrp FOR (cAlias)->Data >= dt1 .AND. (cAlias)->data <= dt2 // .AND. (cAlias)->cancelado!='S'
aArq:={{"PRCODI", "C", 06, 0},;
{"PRDESC", "C", 40, 0},;
{"PRQTDE", "N", 10, 3},;
{"VL_TOT", "N", 12, 3},;
{"ESTQATUAL", "N", 12, 3}}
DBCREATE((arq_temp), aArq)
Open_file(arq_temp,"TMP_ITENS","ITENS DE VENDA AGRUPADOS",.T.)
INDEX ON Prcodi TO (arq_temp)
WHILE COTACAO->(!EOF())
TMP_ITENS->( AdiReg(0) )
TMP_ITENS->Prcodi := (cAlias)->PrCodi
TMP_ITENS->Prdesc := (cAlias)->descricao
TMP_ITENS->Prqtde := (cAlias)->qtde
TMP_ITENS->VL_TOT := (cAlias)->vl_total
TMP_ITENS->ESTQATUAL := Produto->PrEstq
(cAlias)->( DBSKIP() )
END
PG := 1
lin := 1
ntotQtd := 0
nTotValor := 0
INDEX ON PRDESC TO (arq_temp)
//---------------------------------
IF (oExcel := Cria_OLE("Excel.Application", "Erro! O Excel n„o esta Ativado ou N„o instalada nesse Computador", ..T.) ) == NIL
RETURN
ENDIF
oExcel:WorkBooks:Add()
oSheet := oExcel:ActiveSheet
oSheet:Name := 'An lise de Or‡amentos' //cTitulo1 + ' Per¡odo do Relat¢rio:' + Dt2Dig(dt1) + ' a ' + Dt2Dig(dt2)
oSheet:Cells( 1, 1 ):Value := "Codigo"
oSheet:Cells( 1, 2 ):Value := "Descricao"
oSheet:Cells( 1, 3 ):Value := "Qtde Orcamentos"
oSheet:Cells( 1, 4 ):Value := "Estq Atual"
oSheet:Cells( 1, 5 ):Value := "Vlr. Medio"
oSheet:Cells( 1, 6 ):Value := "Vlr. Total"
FOR i=1 to 6
oSheet:Cells( 1, i ):Font:Bold := .T.
oSheet:Cells( 1, i ):Font:ColorIndex := 2 //-- Cor da letra
oSheet:Cells( 1, i ):Interior:ColorIndex := 11 //-- Cor de Fundo
oSheet:Cells( 1, i ):HorizontalAlignment := -4108 // Alinhamento Centro
oSheet:Columns(i):ColumnWidth := 15 // Tamanho da Coluna
NEXT
oSheet:Columns(2):ColumnWidth := 40 // Tamanho da Coluna
oSheet:Cells( 1, 1 ):Select()
oExcel:Visible := .F.
nLinPlan := 2
xTotalEstq := xTotalCust := xTotalVend := 0
WHILE TMP_ITENS->(!EOF())
Mensag("Gerando..."+ STR( (( (nLinPlan-1) / TMP_ITENS->(LastRec()) )*100),3)+"%")
oSheet:Cells( nLinPlan, 1 ):Value := Alltrim(TMP_ITENS->prcodi)
oSheet:Cells( nLinPlan, 2 ):Value := Alltrim(TMP_ITENS->PrDesc)
oSheet:Cells( nLinPlan, 3 ):Value := TMP_ITENS->PrQtde
oSheet:Cells( nLinPlan, 4 ):Value := TMP_ITENS->ESTQATUAL
oSheet:Cells( nLinPlan, 5 ):Value := TMP_ITENS->VL_TOT/TMP_ITENS->PRQTDE
oSheet:Cells( nLinPlan, 6 ):Value := TMP_ITENS->VL_TOT
//-- Totaliza
ntotQtd += TMP_ITENS->PrQtde
nTotValor += TMP_ITENS->Vl_TOT
// Formatar célula:
oSheet:Cells( nLinPlan, 1 ):NumberFormat := "000000"
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 5 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
//oExcel.ActiveSheet.UsedRange.EntireColumn.Autofit
// Alinhamento das celulas:
oSheet:Cells( nLinPlan, 1 ):HorizontalAlignment := 3 //-- Centro
oSheet:Cells( nLinPlan, 5 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
cIntervalo := 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR(nLinPlan))
// Faz Zebrado
IF (nLinPlan % 2) != 0
oSheet:Range(cIntervalo):Interior:ColorIndex := 35
ENDIF
nLinPlan++
TMP_ITENS->( DBSKIP() )
END
oSheet:Cells( nLinPlan, 4 ):Value := ntotQtd
oSheet:Cells( nLinPlan, 4 ):Font:Bold := .T.
oSheet:Cells( nLinPlan, 4 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 4 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):Value := nTotValor
oSheet:Cells( nLinPlan, 6 ):Font:Bold := .T.
oSheet:Cells( nLinPlan, 6 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
oSheet:Range( 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR( nLinPlan ))):Interior:ColorIndex := 21
// Colocar Bordas:
cIntervalo := 'A1:F' + ALLTRIM(STR( nLinPlan ) )
oSheet:Range(cIntervalo):Borders(1):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(2):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(3):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(4):LineStyle:= 1
* Retrieve the FileFormat
nFileFormat = oExcel:WorkBooks(1):FileFormat
cArq := CurDirSys() + 'ProdOrcAgrp' + cTerminal + '.xls'
Ferase( cArq)
oSheet:SaveAs( cArq, 56 ) // Salva no Excel 8.0
inkey(1)
Executa(cArq)
oExcel:WorkBooks:Close()
oExcel:Quit()
oExcel := NIL // Libera o Excel
DBCLOSEALL()
RETURN
"Francisco Martínez García" <pacoelche@hotmail.com> wrote in message news:53d0ec2d$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola:
He visto en las new una libreria (filexls) para pasar datos a una hoja excel, pero no he localizado como utilizarla.
Si alguien puede decirme como funciona y si me puede enviar un ejemplo, pues mejor que mejor.
Muchísimas gracias por vuestra colaboración.
Paco Martínez
Elche
---
Este email está limpo de vírus e malwares porque a proteção do avast! Antivírus está ativa.
http://www.avast.com
--
************************************************************ ********************
procedure RelExcel(dt1, dt2, cAlias, bCond)
************************************************************ *******************
LOCAL pag:=0, cl:=0, nTot:=0, lin:=0, tot_ger:=0, cCabec:=""
LOCAL dData := CTOD(" / / "), aProduto := {}
LOCAL cTela := Savescreen(s_geral)
LOCAL nPos := 0
Local cPara
LOCAL getlist:={}, cTitulo1:="", cCliente:=""
LOCAL cArq :='', nLidos:=0
LOCAL oExcel, oSheet, cIntervalo, i, xTotalVend, xTotalCust, xTotalEstq, nLinPlan
SETCOLOR(vcn)
Produto->( ORDSETFOCUS('produto2') )
INDEX ON DTOS(DATA) + PEDIDO + PRCODI TO iTmpCotAgrp FOR (cAlias)->Data >= dt1 .AND. (cAlias)->data <= dt2 // .AND. (cAlias)->cancelado!='S'
aArq:={{"PRCODI", "C", 06, 0},;
{"PRDESC", "C", 40, 0},;
{"PRQTDE", "N", 10, 3},;
{"VL_TOT", "N", 12, 3},;
{"ESTQATUAL", "N", 12, 3}}
DBCREATE((arq_temp), aArq)
Open_file(arq_temp,"TMP_ITENS","ITENS DE VENDA AGRUPADOS",.T.)
INDEX ON Prcodi TO (arq_temp)
WHILE COTACAO->(!EOF())
TMP_ITENS->( AdiReg(0) )
TMP_ITENS->Prcodi := (cAlias)->PrCodi
TMP_ITENS->Prdesc := (cAlias)->descricao
TMP_ITENS->Prqtde := (cAlias)->qtde
TMP_ITENS->VL_TOT := (cAlias)->vl_total
TMP_ITENS->ESTQATUAL := Produto->PrEstq
(cAlias)->( DBSKIP() )
END
PG := 1
lin := 1
ntotQtd := 0
nTotValor := 0
INDEX ON PRDESC TO (arq_temp)
//---------------------------------
IF (oExcel := Cria_OLE("Excel.Application", "Erro! O Excel n„o esta Ativado ou N„o instalada nesse Computador", ..T.) ) == NIL
RETURN
ENDIF
oExcel:WorkBooks:Add()
oSheet := oExcel:ActiveSheet
oSheet:Name := 'An lise de Or‡amentos' //cTitulo1 + ' Per¡odo do Relat¢rio:' + Dt2Dig(dt1) + ' a ' + Dt2Dig(dt2)
oSheet:Cells( 1, 1 ):Value := "Codigo"
oSheet:Cells( 1, 2 ):Value := "Descricao"
oSheet:Cells( 1, 3 ):Value := "Qtde Orcamentos"
oSheet:Cells( 1, 4 ):Value := "Estq Atual"
oSheet:Cells( 1, 5 ):Value := "Vlr. Medio"
oSheet:Cells( 1, 6 ):Value := "Vlr. Total"
FOR i=1 to 6
oSheet:Cells( 1, i ):Font:Bold := .T.
oSheet:Cells( 1, i ):Font:ColorIndex := 2 //-- Cor da letra
oSheet:Cells( 1, i ):Interior:ColorIndex := 11 //-- Cor de Fundo
oSheet:Cells( 1, i ):HorizontalAlignment := -4108 // Alinhamento Centro
oSheet:Columns(i):ColumnWidth := 15 // Tamanho da Coluna
NEXT
oSheet:Columns(2):ColumnWidth := 40 // Tamanho da Coluna
oSheet:Cells( 1, 1 ):Select()
oExcel:Visible := .F.
nLinPlan := 2
xTotalEstq := xTotalCust := xTotalVend := 0
WHILE TMP_ITENS->(!EOF())
Mensag("Gerando..."+ STR( (( (nLinPlan-1) / TMP_ITENS->(LastRec()) )*100),3)+"%")
oSheet:Cells( nLinPlan, 1 ):Value := Alltrim(TMP_ITENS->prcodi)
oSheet:Cells( nLinPlan, 2 ):Value := Alltrim(TMP_ITENS->PrDesc)
oSheet:Cells( nLinPlan, 3 ):Value := TMP_ITENS->PrQtde
oSheet:Cells( nLinPlan, 4 ):Value := TMP_ITENS->ESTQATUAL
oSheet:Cells( nLinPlan, 5 ):Value := TMP_ITENS->VL_TOT/TMP_ITENS->PRQTDE
oSheet:Cells( nLinPlan, 6 ):Value := TMP_ITENS->VL_TOT
//-- Totaliza
ntotQtd += TMP_ITENS->PrQtde
nTotValor += TMP_ITENS->Vl_TOT
// Formatar célula:
oSheet:Cells( nLinPlan, 1 ):NumberFormat := "000000"
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 5 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
//oExcel.ActiveSheet.UsedRange.EntireColumn.Autofit
// Alinhamento das celulas:
oSheet:Cells( nLinPlan, 1 ):HorizontalAlignment := 3 //-- Centro
oSheet:Cells( nLinPlan, 5 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
cIntervalo := 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR(nLinPlan))
// Faz Zebrado
IF (nLinPlan % 2) != 0
oSheet:Range(cIntervalo):Interior:ColorIndex := 35
ENDIF
nLinPlan++
TMP_ITENS->( DBSKIP() )
END
oSheet:Cells( nLinPlan, 4 ):Value := ntotQtd
oSheet:Cells( nLinPlan, 4 ):Font:Bold := .T.
oSheet:Cells( nLinPlan, 4 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 4 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):Value := nTotValor
oSheet:Cells( nLinPlan, 6 ):Font:Bold := .T.
oSheet:Cells( nLinPlan, 6 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
oSheet:Range( 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR( nLinPlan ))):Interior:ColorIndex := 21
// Colocar Bordas:
cIntervalo := 'A1:F' + ALLTRIM(STR( nLinPlan ) )
oSheet:Range(cIntervalo):Borders(1):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(2):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(3):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(4):LineStyle:= 1
* Retrieve the FileFormat
nFileFormat = oExcel:WorkBooks(1):FileFormat
cArq := CurDirSys() + 'ProdOrcAgrp' + cTerminal + '.xls'
Ferase( cArq)
oSheet:SaveAs( cArq, 56 ) // Salva no Excel 8.0
inkey(1)
Executa(cArq)
oExcel:WorkBooks:Close()
oExcel:Quit()
oExcel := NIL // Libera o Excel
DBCLOSEALL()
RETURN
"Francisco Martínez García" <pacoelche@hotmail.com> wrote in message news:53d0ec2d$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola:
He visto en las new una libreria (filexls) para pasar datos a una hoja excel, pero no he localizado como utilizarla.
Si alguien puede decirme como funciona y si me puede enviar un ejemplo, pues mejor que mejor.
Muchísimas gracias por vuestra colaboración.
Paco Martínez
Elche
---
Este email está limpo de vírus e malwares porque a proteção do avast! Antivírus está ativa.
http://www.avast.com
--
TFileXls
Gracias Cassiano, voy a probarlo.
Un saludo
"Cassiano de Oliveira" <calunaty@calunaty.com.br> escribió en el mensaje news:[email=53d109f3@svctag-j7w3v3j....]53d109f3@svctag-j7w3v3j....[/email]
Miras se le ayuda
************************************************************ ********************
procedure RelExcel(dt1, dt2, cAlias, bCond)
************************************************************ *******************
LOCAL pag:=0, cl:=0, nTot:=0, lin:=0, tot_ger:=0, cCabec:=""
LOCAL dData := CTOD(" / / "), aProduto := {}
LOCAL cTela := Savescreen(s_geral)
LOCAL nPos := 0
Local cPara
LOCAL getlist:={}, cTitulo1:="", cCliente:=""
LOCAL cArq :='', nLidos:=0
LOCAL oExcel, oSheet, cIntervalo, i, xTotalVend, xTotalCust, xTotalEstq, nLinPlan
SETCOLOR(vcn)
Produto->( ORDSETFOCUS('produto2') )
INDEX ON DTOS(DATA) + PEDIDO + PRCODI TO iTmpCotAgrp FOR (cAlias)->Data >= dt1 .AND. (cAlias)->data <= dt2 // ..AND. (cAlias)->cancelado!='S'
aArq:={{"PRCODI", "C", 06, 0},;
{"PRDESC", "C", 40, 0},;
{"PRQTDE", "N", 10, 3},;
{"VL_TOT", "N", 12, 3},;
{"ESTQATUAL", "N", 12, 3}}
DBCREATE((arq_temp), aArq)
Open_file(arq_temp,"TMP_ITENS","ITENS DE VENDA AGRUPADOS",.T.)
INDEX ON Prcodi TO (arq_temp)
WHILE COTACAO->(!EOF())
TMP_ITENS->( AdiReg(0) )
TMP_ITENS->Prcodi := (cAlias)->PrCodi
TMP_ITENS->Prdesc := (cAlias)->descricao
TMP_ITENS->Prqtde := (cAlias)->qtde
TMP_ITENS->VL_TOT := (cAlias)->vl_total
TMP_ITENS->ESTQATUAL := Produto->PrEstq
(cAlias)->( DBSKIP() )
END
PG := 1
lin := 1
ntotQtd := 0
nTotValor := 0
INDEX ON PRDESC TO (arq_temp)
//---------------------------------
IF (oExcel := Cria_OLE("Excel.Application", "Erro! O Excel n„o esta Ativado ou N„o instalada nesse Computador", ..T.) ) == NIL
RETURN
ENDIF
oExcel:WorkBooks:Add()
oSheet := oExcel:ActiveSheet
oSheet:Name := 'An lise de Or‡amentos' //cTitulo1 + ' Per¡odo do Relat¢rio:' + Dt2Dig(dt1) + ' a ' + Dt2Dig(dt2)
oSheet:Cells( 1, 1 ):Value := "Codigo"
oSheet:Cells( 1, 2 ):Value := "Descricao"
oSheet:Cells( 1, 3 ):Value := "Qtde Orcamentos"
oSheet:Cells( 1, 4 ):Value := "Estq Atual"
oSheet:Cells( 1, 5 ):Value := "Vlr. Medio"
oSheet:Cells( 1, 6 ):Value := "Vlr. Total"
FOR i=1 to 6
oSheet:Cells( 1, i ):Font:Bold := ..T.
oSheet:Cells( 1, i ):Font:ColorIndex := 2 //-- Cor da letra
oSheet:Cells( 1, i ):Interior:ColorIndex := 11 //-- Cor de Fundo
oSheet:Cells( 1, i ):HorizontalAlignment := -4108 // Alinhamento Centro
oSheet:Columns(i):ColumnWidth := 15 // Tamanho da Coluna
NEXT
oSheet:Columns(2):ColumnWidth := 40 // Tamanho da Coluna
oSheet:Cells( 1, 1 ):Select()
oExcel:Visible := .F.
nLinPlan := 2
xTotalEstq := xTotalCust := xTotalVend := 0
WHILE TMP_ITENS->(!EOF())
Mensag("Gerando..."+ STR( (( (nLinPlan-1) / TMP_ITENS->(LastRec()) )*100),3)+"%")
oSheet:Cells( nLinPlan, 1 ):Value := Alltrim(TMP_ITENS->prcodi)
oSheet:Cells( nLinPlan, 2 ):Value := Alltrim(TMP_ITENS->PrDesc)
oSheet:Cells( nLinPlan, 3 ):Value := TMP_ITENS->PrQtde
oSheet:Cells( nLinPlan, 4 ):Value := TMP_ITENS->ESTQATUAL
oSheet:Cells( nLinPlan, 5 ):Value := TMP_ITENS->VL_TOT/TMP_ITENS->PRQTDE
oSheet:Cells( nLinPlan, 6 ):Value := TMP_ITENS->VL_TOT
//-- Totaliza
ntotQtd += TMP_ITENS->PrQtde
nTotValor += TMP_ITENS->Vl_TOT
// Formatar célula:
oSheet:Cells( nLinPlan, 1 ):NumberFormat := "000000"
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 5 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
//oExcel.ActiveSheet.UsedRange.EntireColumn.Autofit
// Alinhamento das celulas:
oSheet:Cells( nLinPlan, 1 ):HorizontalAlignment := 3 //-- Centro
oSheet:Cells( nLinPlan, 5 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
cIntervalo := 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR(nLinPlan))
// Faz Zebrado
IF (nLinPlan % 2) != 0
oSheet:Range(cIntervalo):Interior:ColorIndex := 35
ENDIF
nLinPlan++
TMP_ITENS->( DBSKIP() )
END
oSheet:Cells( nLinPlan, 4 ):Value := ntotQtd
oSheet:Cells( nLinPlan, 4 ):Font:Bold := ..T.
oSheet:Cells( nLinPlan, 4 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 4 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):Value := nTotValor
oSheet:Cells( nLinPlan, 6 ):Font:Bold := ..T.
oSheet:Cells( nLinPlan, 6 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
oSheet:Range( 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR( nLinPlan ))):Interior:ColorIndex := 21
// Colocar Bordas:
cIntervalo := 'A1:F' + ALLTRIM(STR( nLinPlan ) )
oSheet:Range(cIntervalo):Borders(1):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(2):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(3):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(4):LineStyle:= 1
* Retrieve the FileFormat
nFileFormat = oExcel:WorkBooks(1):FileFormat
cArq := CurDirSys() + 'ProdOrcAgrp' + cTerminal + '.xls'
Ferase( cArq)
oSheet:SaveAs( cArq, 56 ) // Salva no Excel 8.0
inkey(1)
Executa(cArq)
oExcel:WorkBooks:Close()
oExcel:Quit()
oExcel := NIL // Libera o Excel
DBCLOSEALL()
RETURN
"Francisco Martínez García" <pacoelche@hotmail.com> wrote in message news:53d0ec2d$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola:
He visto en las new una libreria (filexls) para pasar datos a una hoja excel, pero no he localizado como utilizarla.
Si alguien puede decirme como funciona y si me puede enviar un ejemplo, pues mejor que mejor.
Muchísimas gracias por vuestra colaboración.
Paco Martínez
Elche
------------------------------------------------------------ ------------------
Este email está limpo de vírus e malwares porque a proteção do avast! Antivírus está ativa.
--
Un saludo
"Cassiano de Oliveira" <calunaty@calunaty.com.br> escribió en el mensaje news:[email=53d109f3@svctag-j7w3v3j....]53d109f3@svctag-j7w3v3j....[/email]
Miras se le ayuda
************************************************************ ********************
procedure RelExcel(dt1, dt2, cAlias, bCond)
************************************************************ *******************
LOCAL pag:=0, cl:=0, nTot:=0, lin:=0, tot_ger:=0, cCabec:=""
LOCAL dData := CTOD(" / / "), aProduto := {}
LOCAL cTela := Savescreen(s_geral)
LOCAL nPos := 0
Local cPara
LOCAL getlist:={}, cTitulo1:="", cCliente:=""
LOCAL cArq :='', nLidos:=0
LOCAL oExcel, oSheet, cIntervalo, i, xTotalVend, xTotalCust, xTotalEstq, nLinPlan
SETCOLOR(vcn)
Produto->( ORDSETFOCUS('produto2') )
INDEX ON DTOS(DATA) + PEDIDO + PRCODI TO iTmpCotAgrp FOR (cAlias)->Data >= dt1 .AND. (cAlias)->data <= dt2 // ..AND. (cAlias)->cancelado!='S'
aArq:={{"PRCODI", "C", 06, 0},;
{"PRDESC", "C", 40, 0},;
{"PRQTDE", "N", 10, 3},;
{"VL_TOT", "N", 12, 3},;
{"ESTQATUAL", "N", 12, 3}}
DBCREATE((arq_temp), aArq)
Open_file(arq_temp,"TMP_ITENS","ITENS DE VENDA AGRUPADOS",.T.)
INDEX ON Prcodi TO (arq_temp)
WHILE COTACAO->(!EOF())
TMP_ITENS->( AdiReg(0) )
TMP_ITENS->Prcodi := (cAlias)->PrCodi
TMP_ITENS->Prdesc := (cAlias)->descricao
TMP_ITENS->Prqtde := (cAlias)->qtde
TMP_ITENS->VL_TOT := (cAlias)->vl_total
TMP_ITENS->ESTQATUAL := Produto->PrEstq
(cAlias)->( DBSKIP() )
END
PG := 1
lin := 1
ntotQtd := 0
nTotValor := 0
INDEX ON PRDESC TO (arq_temp)
//---------------------------------
IF (oExcel := Cria_OLE("Excel.Application", "Erro! O Excel n„o esta Ativado ou N„o instalada nesse Computador", ..T.) ) == NIL
RETURN
ENDIF
oExcel:WorkBooks:Add()
oSheet := oExcel:ActiveSheet
oSheet:Name := 'An lise de Or‡amentos' //cTitulo1 + ' Per¡odo do Relat¢rio:' + Dt2Dig(dt1) + ' a ' + Dt2Dig(dt2)
oSheet:Cells( 1, 1 ):Value := "Codigo"
oSheet:Cells( 1, 2 ):Value := "Descricao"
oSheet:Cells( 1, 3 ):Value := "Qtde Orcamentos"
oSheet:Cells( 1, 4 ):Value := "Estq Atual"
oSheet:Cells( 1, 5 ):Value := "Vlr. Medio"
oSheet:Cells( 1, 6 ):Value := "Vlr. Total"
FOR i=1 to 6
oSheet:Cells( 1, i ):Font:Bold := ..T.
oSheet:Cells( 1, i ):Font:ColorIndex := 2 //-- Cor da letra
oSheet:Cells( 1, i ):Interior:ColorIndex := 11 //-- Cor de Fundo
oSheet:Cells( 1, i ):HorizontalAlignment := -4108 // Alinhamento Centro
oSheet:Columns(i):ColumnWidth := 15 // Tamanho da Coluna
NEXT
oSheet:Columns(2):ColumnWidth := 40 // Tamanho da Coluna
oSheet:Cells( 1, 1 ):Select()
oExcel:Visible := .F.
nLinPlan := 2
xTotalEstq := xTotalCust := xTotalVend := 0
WHILE TMP_ITENS->(!EOF())
Mensag("Gerando..."+ STR( (( (nLinPlan-1) / TMP_ITENS->(LastRec()) )*100),3)+"%")
oSheet:Cells( nLinPlan, 1 ):Value := Alltrim(TMP_ITENS->prcodi)
oSheet:Cells( nLinPlan, 2 ):Value := Alltrim(TMP_ITENS->PrDesc)
oSheet:Cells( nLinPlan, 3 ):Value := TMP_ITENS->PrQtde
oSheet:Cells( nLinPlan, 4 ):Value := TMP_ITENS->ESTQATUAL
oSheet:Cells( nLinPlan, 5 ):Value := TMP_ITENS->VL_TOT/TMP_ITENS->PRQTDE
oSheet:Cells( nLinPlan, 6 ):Value := TMP_ITENS->VL_TOT
//-- Totaliza
ntotQtd += TMP_ITENS->PrQtde
nTotValor += TMP_ITENS->Vl_TOT
// Formatar célula:
oSheet:Cells( nLinPlan, 1 ):NumberFormat := "000000"
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 5 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
//oExcel.ActiveSheet.UsedRange.EntireColumn.Autofit
// Alinhamento das celulas:
oSheet:Cells( nLinPlan, 1 ):HorizontalAlignment := 3 //-- Centro
oSheet:Cells( nLinPlan, 5 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
cIntervalo := 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR(nLinPlan))
// Faz Zebrado
IF (nLinPlan % 2) != 0
oSheet:Range(cIntervalo):Interior:ColorIndex := 35
ENDIF
nLinPlan++
TMP_ITENS->( DBSKIP() )
END
oSheet:Cells( nLinPlan, 4 ):Value := ntotQtd
oSheet:Cells( nLinPlan, 4 ):Font:Bold := ..T.
oSheet:Cells( nLinPlan, 4 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 4 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):Value := nTotValor
oSheet:Cells( nLinPlan, 6 ):Font:Bold := ..T.
oSheet:Cells( nLinPlan, 6 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
oSheet:Range( 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR( nLinPlan ))):Interior:ColorIndex := 21
// Colocar Bordas:
cIntervalo := 'A1:F' + ALLTRIM(STR( nLinPlan ) )
oSheet:Range(cIntervalo):Borders(1):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(2):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(3):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(4):LineStyle:= 1
* Retrieve the FileFormat
nFileFormat = oExcel:WorkBooks(1):FileFormat
cArq := CurDirSys() + 'ProdOrcAgrp' + cTerminal + '.xls'
Ferase( cArq)
oSheet:SaveAs( cArq, 56 ) // Salva no Excel 8.0
inkey(1)
Executa(cArq)
oExcel:WorkBooks:Close()
oExcel:Quit()
oExcel := NIL // Libera o Excel
DBCLOSEALL()
RETURN
"Francisco Martínez García" <pacoelche@hotmail.com> wrote in message news:53d0ec2d$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola:
He visto en las new una libreria (filexls) para pasar datos a una hoja excel, pero no he localizado como utilizarla.
Si alguien puede decirme como funciona y si me puede enviar un ejemplo, pues mejor que mejor.
Muchísimas gracias por vuestra colaboración.
Paco Martínez
Elche
------------------------------------------------------------ ------------------
Este email está limpo de vírus e malwares porque a proteção do avast! Antivírus está ativa.
--