Como hacer un fichero de excel seleccionando registros
Publicado por Daniel (4 intervenciones) el 07/04/2019 17:03:54
Buenas Tardes,
Me voy a explicar un poco porque el titulo es un poco confuso.
Mi idea es realizar a partir de una tabla que se rellena con datos de la BD una exportación de fichero de excel, hasta ahí todo bien me funciona perfectamente etc, pero a la hora de implementar un checkbox que me permita seleccionar datos que vayan al fichero excel, no me funciona.
Os adjunto los codigos que tengo.
la tabla que esta en envio.php
Donde genero el excel
Hay que destacar que ahora mismo si me descarga el excel solamente si tengo algún dato con el checkbox seleccionado, pero me lo descarga vació.
Me voy a explicar un poco porque el titulo es un poco confuso.
Mi idea es realizar a partir de una tabla que se rellena con datos de la BD una exportación de fichero de excel, hasta ahí todo bien me funciona perfectamente etc, pero a la hora de implementar un checkbox que me permita seleccionar datos que vayan al fichero excel, no me funciona.
Os adjunto los codigos que tengo.
la tabla que esta en envio.php
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
<form method="POST" action="generar.php">
<table class="table2 table-striped table-bordered">
<tr>
<th>ID</th>
<th>DESTINATARIO</th>
<th>TELEFONO</th>
<th>POBLACION</th>
<th>CP</th>
<th>PROVINCIA</th>
<th>DIRECCION</th>
<th>OBSERVACIONES</th>
<th>MARCAR COMO ENVIADO</th>
<th>ENVIAR</th>
</tr>
</thead>
<tbody>
<?php
while($row = mysqli_fetch_assoc($resul)){
?>
<tr>
<?php $id = $row["id_part"]; ?>
<td style="border-bottom: 1px solid"><?php echo "ID IOL ",$row['id_part']?></td>
<td style="border-bottom: 1px solid"><?php echo $row['nombreg']," ",$row['apellido1g']," ",$row['apellido2g']?></td>
<td style="border-bottom: 1px solid"><?php echo $row['telg']?></td>
<td style="border-bottom: 1px solid"><?php echo $row['localidad']?></td>
<td style="border-bottom: 1px solid"><?php echo $row['cp']?></td>
<td style="border-bottom: 1px solid"><?php echo $row['provinciag']?></td>
<td style="border-bottom: 1px solid"><?php echo "C/ ",$row['calle']," ",$row['num']," ",$row['piso']," ",$row['puerta']?></td>
<td style="border-bottom: 1px solid"><?php echo $row['observaciones']?></td>
<td style="border-bottom: 1px solid;">
<?php echo '<button type="button" class="btn btn-success" ' . 'id="'.$row['id_participante'].'" '. 'data-toggle="modal"'. 'data-target="#ok">' .'Confirmar'.'</button>';
?>
</td>
<td style="border-bottom: 1px solid; padding-left: 4%">
<?php echo "<input type='radio' name='id_envios[$id]' value='1'" ?>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
<input type="submit" value="Generar Fichero Excel" class='btn btn-sm btn-success'>
</form>
Donde genero el excel
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
include('conexion.php');
if(isset($_POST["id_envios"])){
foreach ($_POST["id_envios"] as $id => $id_envios) {
$filename ="Solicitud_envios_IOL_".date("d-m-y").".xls";
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=".$filename);
require('Classes/PHPExcel.php');
$excel = new PHPExcel();
$excel->getProperties()->setCreator('IOL')->setLastModifiedBy('IOL')->setTitle('Envios');
$excel->setActiveSheetIndex(0);
$pagina = $excel->getActiveSheet();
$pagina->setTitle('Envios');
$conn->set_charset('utf8');//evita errores con accentos y tildes y caracteres especiales
$statement = $conn->prepare('SELECT * FROM ganadores WHERE id_part = "$id"');
$statement->execute();
$result= $statement->get_result();
while($row = $result->fetch_array()) $envios[] = $row;
//CABECERA
$pagina->setCellValue('A1','Referencia');
$pagina->setCellValue('B1','Destinatario');
$pagina->setCellValue('C1','Telefóno Participante');
$pagina->setCellValue('D1','Población');
$pagina->setCellValue('E1','Codigo Postal');
$pagina->setCellValue('F1','Provincia');
$pagina->setCellValue('G1','Dirección');
$pagina->setCellValue('H1','Observaciones');
//ESTILO DEL EXCEL CABECERA
$pagina->getStyle('A1:H1')->getFont()->setBold(true);
$pagina->getStyle('A1:H1')->getFont()->getColor()->setRGB('FFFFFF');
$pagina->getStyle('A1:H1')->getFont()->setSize(14);
function cellColor($cells,$color){
global $pagina;
$pagina->getStyle($cells)->getFill()
->applyFromArray(array('type' => PHPExcel_Style_Fill::FILL_SOLID,
'startcolor' => array('rgb' => $color)
));
}
cellColor('A1:H1', '000000');
//DATOS QUE RELLENARAN EL EXCEL
for($i = 0; $i< count($envios); $i++){
$pagina->setCellValue('A'.($i+2), "ID IOL ".$envios[$i]['id_part']);
$pagina->setCellValue('B'.($i+2), $envios[$i]['nombreg']." ".$envios[$i]['apellido1g']." ".$envios[$i]['apellido2g']);
$pagina->setCellValue('C'.($i+2), $envios[$i]['telg']);
$pagina->setCellValue('D'.($i+2), $envios[$i]['localidad']);
$pagina->setCellValue('E'.($i+2), $envios[$i]['cp']);
$pagina->setCellValue('F'.($i+2), $envios[$i]['provinciag']);
$pagina->setCellValue('G'.($i+2), "C/ ".$envios[$i]['calle']." ".$envios[$i]['num']." ".$envios[$i]['piso']." ".$envios[$i]['puerta']);
$pagina->setCellValue('H'.($i+2), $envios[$i]['observaciones']);
}
//AUTOSIZE DE CELDAS
foreach (range('A', 'H') as $column) {
$pagina->getColumnDimension($column)->setAutoSize(true);
}
//GENERAR ARCHIVO EXCEl
$objWriter = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$objWriter->save('php://output');
}
}
?>
Hay que destacar que ahora mismo si me descarga el excel solamente si tengo algún dato con el checkbox seleccionado, pero me lo descarga vació.
Valora esta pregunta


0