Excel to CSV

nonsochisono

Nuovo Utente
23 Ago 2012
7
0
1
Salve a tutti
In poche parole io dovrei prendere un file .XLS aprirlo cancellare le colonne B e C, ed tutte quelle da E in poi, per salvarlo infine in un file CSV.
Ho scelto di optare per le classi PhpExcel di Codeplex.
Ma ho un piccolo problema in quanto nel mio codice apro prima il file Xls cancello B e C, e lo salvo in un file. Poi riapro questo file, cancello le altre colonne e salvo ancora.
Il problema e' che nel CSV finale mi ritrovo con l'ultima riga senza le colonne eliminate, e tutte le precedenti righe quindi con tutti i valori null.
Sto impazzendo aiutatemi, ecco il mio codice:
PHP:
<?php

error_reporting(E_ALL);
set_time_limit(0);

date_default_timezone_set('Europe/London');

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>PHPExcel Reader Raffa </title>

</head>
<body>

<h1>PHPExcel Reader Raffa </h1>
<h2>Simple File Reader Using a Configurable Read Filter</h2>
<?php

/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . '../../../Classes/');

/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';


$inputFileType = 'Excel5';
//	$inputFileType = 'Excel2007';
//	$inputFileType = 'Excel2003XML';
//	$inputFileType = 'OOCalc';
//	$inputFileType = 'Gnumeric';
$inputFileName = './sampleData/prodotti.xls';
$sheetname = 'Foglio 01';

$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);

$objPHPExcel = $objReader->load($inputFileName);

$objPHPExcel->getActiveSheet()->removeColumn( 'B',2);


$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();

$headingsArray = $objWorksheet->rangeToArray('A1:'.$highestColumn.'1',null, true, true, true);
$headingsArray = $headingsArray[1];

$r = -1;
$namedDataArray = array();
for ($row = 2; $row <= $highestRow; ++$row) {
    $dataRow = $objWorksheet->rangeToArray('A'.$row.':'.$highestColumn.$row,null, true, true, true);
    if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) {
        ++$r;
        foreach($headingsArray as $columnKey => $columnHeading) {
            $namedDataArray[$r][$columnHeading] = $dataRow[$row][$columnKey];
        }
    }
}
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
$objWriter->save('./sampleData/cazzone.xls');
$objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
$objWriter->save('./sampleData/cazzone.csv');
echo '<pre>';
var_dump($namedDataArray);
echo '</pre><hr />';



$inputFileType = 'Excel5';
$inputFileName1 = './sampleData/cazzone.xls';
$sheetname1 = 'Foglio 01';

$objReader1 = PHPExcel_IOFactory::createReader('Excel5');
$objReader1->setReadDataOnly(true);

$objPHPExcel1 = $objReader1->load($inputFileName1);




$objWorksheet1 = $objPHPExcel1->setActiveSheetIndex(0);
$highestRow1 = $objWorksheet1->getHighestRow();
$highestColumn1 = $objWorksheet1->getHighestColumn();

$headingsArray1 = $objWorksheet1->rangeToArray('A1:'.$highestColumn1.'1',null, true, true, true);
$headingsArray1 = $headingsArray1[1];
$objPHPExcel1->getActiveSheet()->removeColumn( 'C',20);
$r = -1;
$namedDataArray1 = array();
for ($row = 2; $row <= $highestRow1; ++$row) {
    $dataRow1 = $objWorksheet1->rangeToArray('A'.$row.':'.$highestColumn1.$row,null, true, true, true);
    if ((isset($dataRow1[$row]['A'])) && ($dataRow1[$row]['A'] > '')) {
        ++$r;
        foreach($headingsArray1 as $columnKey => $columnHeading) {
            $namedDataArray1[$r][$columnHeading] = $dataRow1[$row][$columnKey];
        }
    }
}
$objWriter1 = new PHPExcel_Writer_CSV($objPHPExcel1);
$objWriter1->save('./sampleData/cazzone1.csv');

echo '<pre>';
var_dump($namedDataArray1);
echo '</pre><hr />';
 
Ultima modifica di un moderatore:
Discussioni simili
Autore Titolo Forum Risposte Data
FabioJ [mysql] importazione csv o json o excel Database 0
N CSV doppi apici e punto e virgola da Excel tramite PHP PHP 2
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
andreas88 Formula Excel calcolo notti totali - Settore Turismo Windows e Software 4
U PHP creare un file excel dopo ricerca nel DB PHP 0
felino [EXCEL] Conteggio ore all'interno di una settimana Windows e Software 7
M File excel e LibreOffice PHP 0
V Come stampare su Excel tabella con rowspan e colspan Javascript 2
felino PHP e script generazione file excel PHP 2
S Problema esportazione tabelle Mysql in Excel PHP 0
W Excel come filtrare una tabella Windows e Software 2
D Merge nei fogli Excel con PHPSpreadsheet PHP 4
T Da xsd a xml ed inserimento dati in excel XML 0
E Creazione gestionale timesheet partendo da foglio excel Offerte e Richieste di Lavoro e/o Collaborazione 0
D Layout di foglio Excel generato con PhpSpreadsheet PHP 5
felino Excel: popolare una cella con la data di modifica della riga a cui appartiene Windows e Software 3
D Difficile creazione excel di dati di grandi dimensioni Classic ASP 2
P Convertire Excel in PHP PHP 1
M conversione excel javascript Javascript 0
S [PHP] come esportare due tabelle in file excel su due fogli distinti PHP 8
felino EXCEL: verifica dati mancanti tra due sheet Windows e Software 2
alessandra86 [PHP] Esportazione file excel - approssimazione numerica o fuori range? PHP 3
M [PHP] Componi i file di Excel in e-mail PHP 1
Z Esporta da PHP a EXCEL rimanendo gli ZERI PHP 3
V [PHP] Upload Excel in db PHP 0
A esportare dati da tabella mysql a excel mantenendo formattazione PHP 0
AlexPD Inserire tabella excel dinamica su pagina web PHP 4
D Importare dati da più files excel in access MS Access 3
asevenx Importare file excel in database mysql PHP 3
A Compilazione file Excel con una E-mail PHP 1
V Interazione excel con pagina web HTML e CSS 1
A queries da pagina web con excel Classic ASP 1
M Leggere dati da file excel in base al nome del foglio di lavoro PHP 0
A query con excel PHP 0
P Da excel a mysql PHP 1
felino [Excel] Disposizione elementi per colonna Windows e Software 1
T Apertura di un foglio Excel da Access MS Access 2
C usare un foglio php per la creazione di un excel: piccolo problema PHP 2
felino Microsoft Excel: somma su un'intera colonna Windows e Software 1
D [EXCEL] UserForm.Show Error 438 Windows e Software 1
novello88 [EXCEL] Calendario precompilato Windows e Software 1
novello88 [VBA] Risultato formula Excel Visual Basic 1
V [excel] Option Compare Text Windows e Software 1
G [risolto] Creazione file excel con PHP PHP 3
P [RISOLTO]Lettura e scrittura su righe e colonne excel tramite PHP... PHP 3
T aprire pdf con vba excel Programmazione 0
R PHP select con file excel PHP 7
S Da MySQL a Excel aggiornamento del file MySQL 7
M Classe in php 4 per generare file in Excel PHP 4
M Ricerca con Excel Windows e Software 0

Discussioni simili