Crystal report error cuando exporta a excel.

He estado desarrollando reportes como lo indica este blog
http://vbcodigopocketpc.blogspot.com/2009/01/creacin-de-reportes-con-crystal-reports.html y bueno alfin encontre la forma de hacerlo con crystal reportes aunque con codigo embebido en fin, me muestra el reporte todo ok =),
el gran problema es cuando le pongo exportar y algunos campos o celdas estan vacios, y cuando abro mi reporte de excel las celdas vacias se borran y el contenido se pega a la izquierda es decir
en el reporte de crystal reports
codigo usuario  contraseña
1 xxxxx
2 xxxx
En el excel exportado así
Código usuario contraseña
1 xxxxx
2 xxxx
Y la verdad no tengo la más mínima idea porque me sale así estoy todo el día viendo porque sale y ni idea
he probado y cuando todos los campos están llenos, no hay ningún problema.
Si y el problema viene porque los campos o estan NULL o estan Nothing(" ")
Entonces como soluciono esto ¿?
Bueno y otra cosa, cuando lo exporta lo hace de una manera bastante desordenada es decir combina celdas y un campo puede tener 2 o 3 columnas y modifican su tamaño hay forma de exportar un campo en 1 celda ¿? ¿?
Ojala me puedas ayudar

2 Respuestas

Respuesta
1
El tema con la exportación a excel es que los campos nulos el no es capaz de entenderlo, debes si el campo es nulo rellenarlo de ceros o de espacios para que en excel te quede muy bien.
Dime y conoces otra forma donde no tenga que manipular estos datos ya que no es factibble llenar el campo con "espacios", lo que quiero es exportar a excel con un determinado formato que pueda hacerlo por crystal reports.
Muchas gracias por la respuesta.
No, esa es la manera como se comporta excel para este tipo de exportaciones
Respuesta

En cuanto al punto "Algunos datos en excel me toman varias celdas para un solo dato.":
Encontre un articulo en el cual se explica el tema de las celdas combinadas e indica que cuando se exporta de crystal reports a excel existe una propiedad llamada ExcelUseConstantColumnWidth que cuando esta en true pone todas las celdas de excel con el mismo ancho y combina tantas celdas como sea necesario para obtener un campo.
Por lo tanto la propiedad ExcelUseConstantColumnWidth se debe de poner en falso para que no ponga las celdas combinadas de un campo.
Ejemplo:
Dim objExcelOptions As ExcelFormatOptions = New ExcelFormatOptions
objExcelOptions.ExcelUseConstantColumnWidth = False
rptExcel.ExportOptions.FormatOptions = objExcelOptions
Dim rptExcel As New ReportDocument
Dim strExportFile As String = Server.MapPath(".") & "/bad.xls"
rptExcel.Load(Server.MapPath("bad.rpt"))
rptExcel.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
rptExcel.ExportOptions.ExportFormatType = ExportFormatType.Excel
Dim objExcelOptions As ExcelFormatOptions = New ExcelFormatOptions
objExcelOptions.ExcelUseConstantColumnWidth = False
rptExcel.ExportOptions.FormatOptions = objExcelOptions
Dim objOptions As DiskFileDestinationOptions = New DiskFileDestinationOptions
objOptions.DiskFileName = strExportFile
rptExcel.ExportOptions.DestinationOptions = objOptions
rptExcel.Export()
objOptions = Nothing
rptExcel = Nothing
Response.Redirect("bad.xls")
Biografia:
http://aspalliance.com/478_Exporting_to_Excel_in_Crystal_Reports_NET__Perfect_Excel_Exports.3En cuanto al punto "Algunos datos en excel me toman varias celdas para un solo dato.":
Encontre un articulo en el cual se explica el tema de las celdas combinadas e indica que cuando se exporta de crystal reports a excel existe una propiedad llamada ExcelUseConstantColumnWidth que cuando esta en true pone todas las celdas de excel con el mismo ancho y combina tantas celdas como sea necesario para obtener un campo.
Por lo tanto la propiedad ExcelUseConstantColumnWidth se debe de poner en falso para que no ponga las celdas combinadas de un campo.
Ejemplo:
Dim rptExcel As New ReportDocument
Dim strExportFile As String = Server.MapPath(".") & "/bad.xls"
rptExcel.Load(Server.MapPath("bad.rpt"))
rptExcel.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
rptExcel.ExportOptions.ExportFormatType = ExportFormatType.Excel
Dim objExcelOptions As ExcelFormatOptions = New ExcelFormatOptions
objExcelOptions.ExcelUseConstantColumnWidth = False
rptExcel.ExportOptions.FormatOptions = objExcelOptions
Dim objOptions As DiskFileDestinationOptions = New DiskFileDestinationOptions
objOptions.DiskFileName = strExportFile
rptExcel.ExportOptions.DestinationOptions = objOptions
rptExcel.Export()
objOptions = Nothing
rptExcel = Nothing
Response.Redirect("bad.xls")
Biografia:
http://aspalliance.com/478_Exporting_to_Excel_in_Crystal_Reports_NET__Perfect_Excel_Exports.3

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas