Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

da mysql a excel

103 views
Skip to first unread message

Ministry

unread,
Mar 2, 2011, 9:32:24 AM3/2/11
to
Ciao,
ho bisogno di estrapolare dei dati da un db mysql (nomi e indirizzi) ed
esportarli in un file Excel.
Ho trovato molti esempi e la procedura è semplice (es. qui:
http://tinyurl.com/4lhhyae), però io ho bisogno di creare più fogli di
lavoro e assegnare loro dei nomi precisi, in quanto il file dovrà
essere dato in pasto ad un'altra applicazione che pretende queste
specifiche... e non riesco a trovare informazioni utili al riguardo.
Mi sapete aiutare?
m.


--
"La legge, in Italia, è come l'onore delle puttane"
(Curzio Malaparte)

RedWiz

unread,
Mar 2, 2011, 9:36:16 AM3/2/11
to
Il Wed, 02 Mar 2011 14:32:24 +0000, Ministry ha scritto:

> ho bisogno di estrapolare dei dati da un db mysql (nomi e indirizzi) ed
> esportarli in un file Excel.
> Ho trovato molti esempi e la procedura è semplice (es. qui:
> http://tinyurl.com/4lhhyae), però io ho bisogno di creare più fogli di
> lavoro e assegnare loro dei nomi precisi, in quanto il file dovrà essere
> dato in pasto ad un'altra applicazione che pretende queste specifiche...
> e non riesco a trovare informazioni utili al riguardo. Mi sapete
> aiutare?

ma tutto questo cosa c'entra col PHP ?

Ministry

unread,
Mar 2, 2011, 9:58:44 AM3/2/11
to
Il 02/03/11 15.36, RedWiz ha scritto:

Beh, è vero che forse riguarda di più le specifiche dei documenti Excel,
ma visto che l'intento è quello di realizzare uno script PHP per
esportare immagino che qualcuno si sia già scontrato con problematiche
simili.
In caso contrario chiedo scusa e mi inginocchio dietro la lavagna a muro. :)

Motosauro

unread,
Mar 2, 2011, 10:02:00 AM3/2/11
to
Ci sono varie librerie per creare file excel più o meno strutturati,
alcune sono ottenibili via PEAR.
Ho usato librerie free per questo scopo per anni nell'assicurativo.
M

Andrea D'Amore

unread,
Mar 2, 2011, 10:12:58 AM3/2/11
to
In article <Yxsbp.7549$0b....@twister2.libero.it>,
Ministry <mini...@despammed.com> wrote:

> Ho trovato molti esempi e la procedura è semplice (es. qui:
> http://tinyurl.com/4lhhyae),

"PHP possiede delle particolari intestazioni per chi è possibile
stabilire un contatto ed interagire con software esterni"
mi sembra un articolo indecoroso.
Tra l'altro sta semplicemente creando una tabella HTML, il comportamento
su come questa viene importata è di Excel.

> però io ho bisogno di creare più fogli di
> lavoro e assegnare loro dei nomi precisi, in quanto il file dovrà
> essere dato in pasto ad un'altra applicazione che pretende queste
> specifiche... e non riesco a trovare informazioni utili al riguardo.
> Mi sapete aiutare?

Se vuoi andare con le table devi cercare nella documentazione di Excel.

In alternativa puoi cercare una libreria già pronta che possa scrivere
il formato nativo di Excel, dato che non basta l'estensione per
determinare il formato di un file. In questo caso puoi creare il
documento come vuoi.

DaNieL

unread,
Mar 2, 2011, 10:19:59 AM3/2/11
to
Ma perchè complicarsi la vita con il formato excel, e non crei il file
in un normalissimo e universale CSV o TSV (campi separati da
tabulazione), che excel apre e interpreta correttamente?

Motosauro

unread,
Mar 2, 2011, 10:24:55 AM3/2/11
to
Perché se gli servono i fogli di excel (più d'uno per documento) non può
specificarlo
Perché se serve formattazione non può specificarla
Perché se servono formule non può specificarle

Uno di quelli che avevo fatto io a suo tempo era una riga d'intestazione
nero bold su giallo, prima riga bloccata nello scroll verticale, un
foglio per mese (da meseCorrente a 1)
Serviva per preparare i carichi di posta massiva che poi formattavo per
spedirli tramite poste italiane
Le segretarie degli uffici lo trovavano comodo, io pure :)
M

yossarian

unread,
Mar 2, 2011, 10:32:50 AM3/2/11
to
DaNieL wrote:

> Ma perchč complicarsi la vita con il formato excel, e non crei il file


> in un normalissimo e universale CSV o TSV (campi separati da
> tabulazione), che excel apre e interpreta correttamente?

Perchč l'OP ha scritto che "il file dovrŕ essere dato in pasto ad


un'altra applicazione che pretende queste specifiche".

Certo che per scegliere Excel come formato di interscambio dati bisogna
essere storditi forte...

Jon Savini

unread,
Mar 2, 2011, 11:06:22 AM3/2/11
to

> ho bisogno di estrapolare dei dati da un db mysql (nomi e indirizzi) ed
> esportarli in un file Excel.

La butto là... ti crei un template excel, lo salvi in xml. Dentro ci
sono tutte le informazioni per creare header, fogli e celle, hai anche
gli style.

Partendo da quello, in PHP devi estrapolare i dati e sistemarli dove ti
servono nell'xml, xml che sputerai fuori dal php.

L'ho fatto svariate volte in c#, ma alla fine si tratta di creare una
stringa xml valido e contenente i dati che ti servono.

non mi ricordo se salvavo il file come .xls o come xml. in ogni caso
penso vada bene anche il csv, dipende dalle tue specifiche e da come
devi mandare il file alle altre applicazioni.

ciao.

Ministry

unread,
Mar 2, 2011, 1:28:40 PM3/2/11
to
Il 02/03/11 16.32, yossarian ha scritto:
> DaNieL wrote:
>
>> Ma perchè complicarsi la vita con il formato excel, e non crei il file

>> in un normalissimo e universale CSV o TSV (campi separati da
>> tabulazione), che excel apre e interpreta correttamente?
>
> Perchè l'OP ha scritto che "il file dovrà essere dato in pasto ad

> un'altra applicazione che pretende queste specifiche".
>
> Certo che per scegliere Excel come formato di interscambio dati bisogna
> essere storditi forte...

Infatti...
comunque, come nell'esempio di Motosauro, questo essenzialmente mi serve
per generare un file XLS di nominativi e indirizzi da dare in pasto a un
software di gestione della corrispondenza online.
Quindi la mia unica necessità è creare dei fogli che rispettino i
requisiti formali dell'applicativo, senza perdermi in finezze di sorta :)
Per ora ho trovato Phpexcel (http://phpexcel.codeplex.com/) e lo sto
testando. Funziona, ma è fin troppo sovradimensionato per le mie misere
esigenze...

Mau C

unread,
Mar 3, 2011, 3:11:46 AM3/3/11
to
Il 02/03/2011 17.06, Jon Savini ha scritto:
[...]

> La butto là... ti crei un template excel, lo salvi in xml. Dentro ci
> sono tutte le informazioni per creare header, fogli e celle, hai anche
> gli style.
>
> Partendo da quello, in PHP devi estrapolare i dati e sistemarli dove ti
> servono nell'xml, xml che sputerai fuori dal php.

E' quello che faccio io in PHP e Java. Comodissimo. Ma non mi sembra che
si possano aggiungere più fogli nello stesso file excel.

Andrea D'Amore

unread,
Mar 3, 2011, 3:54:26 AM3/3/11
to
In article <iknig3$svn$1...@nnrp-beta.newsland.it>,
Mau C <nob...@hotmail.com> wrote:

> E' quello che faccio io in PHP e Java. Comodissimo. Ma non mi sembra che
> si possano aggiungere più fogli nello stesso file excel.

[1] mostra esplicitamente il foglio di lavoro "Sheet1"

[1]
<http://www.ibm.com/developerworks/opensource/library/os-phpexcel/index.h
tml>

Jon Savini

unread,
Mar 3, 2011, 5:00:44 AM3/3/11
to

> [1] mostra esplicitamente il foglio di lavoro "Sheet1"

forse perrché non ci sono dati nel foglio 2 e excel si fa il
ragionamento che non vale la pena creare altri nodi Worksheet.

Prova a creare piu nodi Worksheet:

<Worksheet ss:Name="Sheet1">

chiaramente con diversi nomi ;)

ciao

Andrea D'Amore

unread,
Mar 3, 2011, 5:34:27 AM3/3/11
to
In article <iknopl$av$1...@tdi.cu.mi.it>, Jon Savini <josg...@ymail.com>
wrote:

> Prova a creare piu nodi Worksheet:

Non sono l'OP.

> <Worksheet ss:Name="Sheet1">
> chiaramente con diversi nomi ;)

È quello che intendevo suggerire col mio messaggio.

Innuendo

unread,
Mar 3, 2011, 12:00:06 PM3/3/11
to
Il 02/03/2011 15.32, Ministry ha scritto:
> Ciao,
> ho bisogno di estrapolare dei dati da un db mysql (nomi e indirizzi) ed
> esportarli in un file Excel.

[ ... ]

> Mi sapete aiutare?

http://pear.php.net/package/Spreadsheet_Excel_Writer/docs

In particolare per aggiungere nuovi fogli di lavoro

http://pear.php.net/manual/en/package.fileformats.spreadsheet-excel-writer.spreadsheet-excel-writer-workbook.addworksheet.php

L'esempio che ti fanno loro nella prima pagina ti fa già capire la
facilità d'uso della classe:

Typical usage

<?php
require_once 'Spreadsheet/Excel/Writer.php';

// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();

// sending HTTP headers
$workbook->send('test.xls');

// Creating a worksheet
$worksheet =& $workbook->addWorksheet('My first worksheet');

// The actual data
$worksheet->write(0, 0, 'Name');
$worksheet->write(0, 1, 'Age');
$worksheet->write(1, 0, 'John Smith');
$worksheet->write(1, 1, 30);
$worksheet->write(2, 0, 'Johann Schmidt');
$worksheet->write(2, 1, 31);
$worksheet->write(3, 0, 'Juan Herrera');
$worksheet->write(3, 1, 32);

// Let's send the file
$workbook->close();
?>

ciao
Mauro

Andrea D'Amore

unread,
Mar 3, 2011, 12:28:56 PM3/3/11
to
In article <qOPbp.1788$%g.3...@twister1.libero.it>,
Innuendo <prova@b.c> wrote:

> http://pear.php.net/package/Spreadsheet_Excel_Writer/docs
[…]


> L'esempio che ti fanno loro nella prima pagina ti fa già capire la
> facilità d'uso della classe:

Tombola, pensavo proprio a qualcosa del genere.

Ministry

unread,
Mar 4, 2011, 4:25:39 AM3/4/11
to
Il 03/03/2011 18.00, Innuendo ha scritto:
> Il 02/03/2011 15.32, Ministry ha scritto:
>> Ciao,
>> ho bisogno di estrapolare dei dati da un db mysql (nomi e indirizzi) ed
>> esportarli in un file Excel.
>
> [ ... ]
>
>> Mi sapete aiutare?
>
> http://pear.php.net/package/Spreadsheet_Excel_Writer/docs
>
> In particolare per aggiungere nuovi fogli di lavoro
>
> http://pear.php.net/manual/en/package.fileformats.spreadsheet-excel-writer.spreadsheet-excel-writer-workbook.addworksheet.php
>
>

Nel frattempo ho testato Phpexcel (http://phpexcel.codeplex.com/) e
sembra funzionare.
Sono 20 mb di codice; è addirittura eccessivo per le mie necessità visto
che ho la semplice esigenza di salvare un file non formattato.
Comunque funziona... a metà, nel senso che il file generato viene
correttamente aperto da Excel e Openoffice, ma la mia applicazione si
rifiuta di importarlo perché il formato non sarebbe corretto (a questo
punto direi che è un limite suo).
Risultato: apro il file in Excel, lo risalvo e lo importo... che rottura
di maroni :-(

0 new messages