formato al exportar a Excel una cadena de números
Publicado por siREZ (203 intervenciones) el 10/12/2013 03:48:21
Cordial Saludo.
tengo una tabla en la BBDD con una columna definida como vchar(20), allí almaceno el código del médico.
este código, (casi todos, 60% aprox) comienzan por 0 (cero) ejem 050010001601
pero al exportarlo a Excel me elimina el cero inicial, excel lo reconoce como un número y al tratar de recuperar este 0 no es posible
como puedo variar el script para evitar que me exporte una columna vchar como numero?
para que al exportarlo a Excel lo reconozca como un texto?
el código es:
gracias.
siREZ
tengo una tabla en la BBDD con una columna definida como vchar(20), allí almaceno el código del médico.
este código, (casi todos, 60% aprox) comienzan por 0 (cero) ejem 050010001601
pero al exportarlo a Excel me elimina el cero inicial, excel lo reconoce como un número y al tratar de recuperar este 0 no es posible
como puedo variar el script para evitar que me exporte una columna vchar como numero?
para que al exportarlo a Excel lo reconozca como un texto?
el código es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
include "../Connections/myconexion.php";
mysql_connect ($hostname_myconexion, $username_myconexion, $password_myconexion);
mysql_select_db($database_myconexion) or die("No se puede seleccionar la base de datos.......... ");
$fecha_hoy=date('d-m-Y');
$datos = "<br> Medicos con email <br><br> Fecha del presente Informe: ".$fecha_hoy."<br> <br> ";
$sql = "SELECT * FROM listado_de_medicos ORDER BY email DESC ";
$r = mysql_query( $sql ) or trigger_error( mysql_error($conn), E_USER_ERROR );
$return = '';
if( mysql_num_rows($r)>0){
$return .= '<table border=1>';
$cols = 0;
while($rs = mysql_fetch_row($r)){
$return .= '<tr>';
if($cols==0){
$cols = sizeof($rs);
$cols_names = array();
for($i=0; $i<$cols; $i++){
$col_name = ucwords(mysql_field_name($r,$i));
$return .= '<th>'.htmlspecialchars($col_name).'</th>';
$cols_names[$i] = $col_name;
}
$return .= '</tr><tr>';
}
for($i=0; $i<$cols; $i++){
#En esta iteración podes manejar de manera personalizada datos, por ejemplo:
if($cols_names[$i] == 'fechaAlta'){ #Fromateo el registro en formato Timestamp
$return .= '<td>'.htmlspecialchars(date('d/m/Y H:i:s',$rs[$i])).'</td>';
}else if($cols_names[$i] == 'activo'){ #Estado lógico del registro, en vez de 1 o 0 le muestro Si o No.
$return .= '<td>'.htmlspecialchars( $rs[$i]==1? 'SI':'NO' ).'</td>';
}else{
$return .= '<td>'.htmlspecialchars($rs[$i]).'</td>';
}
}
$return .= '</tr>';
}
$return .= '</table>';
mysql_free_result($r);
}
#Cambiando el content-type más las <table> se pueden exportar formatos como csv
header("Content-type: application/vnd-ms-excel; charset=iso-8859-1");
header("Content-Disposition: attachment; filename=medicos-".date('d-m-Y').".xls");
echo $datos;
echo $return;
?>
gracias.
siREZ
Valora esta pregunta


0