Hola
aqui tienes link, post y ejemplos aportados en este foro
por el amigo Oscar.
Tambien si investigas en este foro encontraras mucho sobre excel
Saludos desde Argentina
http://www.lawebdelprogramador.com/news/mostrar_new.php?id=73&texto=Power+Builder&n1=146920&n2=1&n3=1&n4=1&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
Además, ya sabemos que existe una librería (pago), para exportar un DW a excel, con todo su formato en:
http://www.lawebdelprogramador.com/news/mostrar_new.php?id=73&texto=Power+Builder&n1=151257&n2=0&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
Pero ahora viene lo nuevo:
*¿Cómo nosotros mismos, podemos dar formato a Excel?
Estas instrucciones son el inicio de una recopilación en la Web, sobre los diferentes lenguajes que interactuan con Excel. En muchos casos, se adaptó a PB. Espero que sigamos incrementándolo.
Tomemos las variables:
xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1]
ll_r=Número de Fila
ll_c=Número de columna
Puden usar Range o Cells.
Pueden ver el ejmplo en:
http://www.powerbuilder.org/modules.php?name=News&file=article&sid=68&mode=&order=0&thold=0
Acá van las propiedades y métodos que pueden usar en Excel:
* Asignar valores:
//Cadenas
xlsub.Cells(ll_r,ll_c).Value = "Un texto cualquiera"
//Números
xlsub.Cells(ll_r,ll_c).Value = 10
//Obtener una suma en la celda 10:3
xlsub.Cells(10, 3).Formula = "=SUMA(C1:C9)"
//Fecha actual
xlsub.Cells(10, 4).Formula = "=AHORA()"
* Ancho Columnas:
xlsub.Columns("A:A").ColumnWidth = 10
xlsub.Columns("B:B").ColumnWidth = 15
xlsub.Columns("C:C").ColumnWidth = 30
* Formato de Fuente:
//Negrita a toda la columna A
xlsub.Range("A:A").Font.Bold = true
//Color texto al rango A1:C3
xlsub.Range("A1:C3").Font.Color = RGB(255,0,0)
//Tipo de letra:
xlsub.Range("A1:A3").Font.Name = "Times New Roman"
//Tamaño
xlsub.Range("A1:A3").Font.Size = 11
* Relleno de las celdas (Background)
xlsub.Range("A1:B2").Interior.Color = RGB(192,192,192)
* Alineación:
//1=Der; 2=Izq; 3=Centro
xlsub.Columns("A:A").HorizontalAlignment =2
//Creo que hay una alineación general
* Formato:
xlsub.Cells(ll_r, 3).Style = "Currency"
//Dos decimales
xlsub.Cells(ll_r, 3).NumberFormat = "#,##0.00"
* Combinar las celdas
xlsub.Range("A1:C1").Merge
Trazar líneas (una fila y tres columnas)
//Tres columnas y una sola fila
FOR i = 1 to 3
//Línea en los cuatro costados de la celda
FOR j = 1 to 4
xlsub.Cells(1,i).Borders(j).LineStyle = 1
NEXT
NEXT
* Borde alrededor de una celda
//Primer parámetro: Tipo de línea (1=Delgado; 2=Segmentado)
//Segundo parámetro: Grosor (1, 2, etc.)
//Terce parámetro: Color de línea
xlsub.Cells(1, 1).BorderAround(1, 2, 3)
* Colocar una imagen como fondo
xlsub.SetBackGroundPicture("c:\logo.bmp")
///****************************************************************
Libreria DESTA
//****************************************************************
1. Ingresen a:
http://www.desta.com.ua/dw2xls/
2. Bajen la librería DW2XLS (118 K), según la versión de PB que usan.
3. Añadan esa librería a su aplicación de la sgte. manera:
- Abran su aplicación; pero ningún objeto debe estar abierto en el lado derecho.
- Clic derecho en su aplicación y elijan Properties...
- En la Ficha Libray List, pulsen Browse.
- Donde dice nombred e archivo, escriban: *.pbl y pulsen Enter.
- Inserten la librería dw2xlsdemo_pb8.pbd
- OK.
4. Para exportar a Excel, en un botón sólo peguen lo siguiente:
integer li_ret
li_ret = uf_save_dw_as_excel(dw_1, 'c:\doc\report.xls')
if li_ret = 1 then
//success
//...
else
//fail
//...
end if
Nota: No es necesario crear previamente el archivo report.xls. Listo!, eso es todo!.
Comentarios:
* Existe otra función llamada uf_save_dw_as_excel_parm, que al guardar, permite especificar ciertas opciones, como ser: incluir la banda o nó, detalle, etc. (existe documentación).
* Soporta grupos, computed field, etc.