Esportare dati in file

domenica 27 aprile 2008 - 21.03

ciccioherz Profilo | Junior Member

ciao, vorrei sapere in che modo sia possibile esportare dei dati in un file excel e anche in un file txt.

se ad esempio eseguissi una query banalissima tipo SELECT * FROM nome_tabella,
vorrei fare in modo che il risultato vada a finire in un file excel, oppure in un file txt..e analogamente..come poter caricare i dati da tali file in tabelle,
vale a dire: se esiste gia un file excel, come posso popolare una tabella da tale file?

grazie

alx_81 Profilo | Guru

>ciao,
Ciao!

>vorrei sapere in che modo sia possibile esportare dei dati in un file excel e anche in un file txt.
>
Che DBMS utilizzi?

Qui di seguito le metodologie consigliate per SQL Server..
Sia per importare che per esportare i dati puoi usare la Import Export Tool:
http://www.dotnethell.it/articles/SQL-Server-2005-DTS-Import-Export.aspx

Si parla di trasferimento di dati tra database SQL Server, ma vedrai che il procedimento è del tutto simile per l'importazione da Excel.

Sempre per SQL Server, se non hai installato gli Integration Services, puoi usare la OPENROWSET:
http://msdn2.microsoft.com/en-us/library/ms190312.aspx

>grazie
Di nulla!

Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

ciccioherz Profilo | Junior Member

ho dato uno sguardo ai link ma non mi sono stati di grande aiuto...

dovrei eseguire una select e il risultato di tale select inserirla in un file excel, supponiamo che tale file sia gia esistente.

il tutto pero devo farlo tramite codice, non in modo visuale..utilizzo mssql 2005 l'edizione e il management studio, entrambi express.

se il file execel si chiama ad esempio: c:\file.xsl, cosa dovrei aggiungere alla seguente query?

SELECT * FROM nome_tabella ......?

grazie di nuovo

alx_81 Profilo | Guru

>ho dato uno sguardo ai link ma non mi sono stati di grande aiuto...
Beh.. sinceramente c'è proprio tutto quello che ti serve, almeno per importare..
Con la openrowset puoi aprire l'excel e caricarlo su db..
Con la Import-Export puoi sia importare che esportare datasources su e da dbms..
>
>il tutto pero devo farlo tramite codice, non in modo visuale..utilizzo
>mssql 2005 l'edizione e il management studio, entrambi express.
Questo non lo avevi detto .
Allora da codice sei costretto ad usare ADO.Net per caricare i dati ed esportarli su un Excel (Puoi creare dei file CSV, comma separated values) e viceversa per caricarli su DBMS..
>
>grazie di nuovo
di nulla!
>
>

Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

ciccioherz Profilo | Junior Member

niente da fare..sono alle prime armi con sql, ado.net invece l'ho usato per interfacciare i programmi c# a sql server.
i file csv non ho idea di cosa siano.

non è possibile avere un esempio di codice? non per avere la pappa pronta, è che non so proprio da dove partire. su google pure sembra un mistero!

l'unica cosa che mi è parsa di capire è che per fare quello che voglio fare non bastano due righe di codice sql..please help me

alx_81 Profilo | Guru

>niente da fare..sono alle prime armi con sql, ado.net invece
>l'ho usato per interfacciare i programmi c# a sql server.
>i file csv non ho idea di cosa siano.
Partiamo col dire che avresti varie soluzioni. Hai escluso la possibilità "visuale" poichè ti serve una procedura da ripetere nel tempo. Intanto, avendo tu SQL Server Express, saresti costretto ad installarti integration services. Con essi potresti disegnarti un SSIS di Import Export andandolo poi a schedulare col lo scheduler di windows.
Quindi, non potendo seguire questa strada, potresti decidere di utilizzare le librerie di Excel da codice, ma questo ti costringe ad installare Excel sulla macchina in cui "gira" il tuo programma.
L'ultima possibilità che vedo è quella del CSV. Come l'acronimo indica, un file CSV è un Comma Separated Values file, ovvero un file in cui i valori sono separati da un carattere, il ";" nel caso di file leggibili da Excel. Anche se il formato nativo non è XLS e quindi non è il formato proprietario di Excel stesso, facendo doppio click sul csv generato (o aprendolo da Excel se il lettore predefinito di csv non è Excel stesso), vedrai il file correttamente formattato su griglia.
>
>non è possibile avere un esempio di codice? non per avere la
>pappa pronta, è che non so proprio da dove partire. su google
>pure sembra un mistero!
Ti indico qui di seguito un semplice ciclo su un datatable ADO.Net per produrre il file CSV.

Innanzitutto, creo la tabella sul tempdb per provare il codice che ti passo:

USE tempdb; GO CREATE TABLE dbo.Utenti ( Id int NOT NULL PRIMARY KEY , Nome varchar(30) NOT NULL , Cognome varchar(50) NOT NULL , Eta tinyint NOT NULL ) GO INSERT INTO dbo.Utenti (Id, Nome, Cognome, Eta) VALUES (1, 'Alessandro', 'Alpi', 27) INSERT INTO dbo.Utenti (Id, Nome, Cognome, Eta) VALUES (2, 'Michael', 'Denny', 24) INSERT INTO dbo.Utenti (Id, Nome, Cognome, Eta) VALUES (3, 'Marco', 'Rossi', 27) INSERT INTO dbo.Utenti (Id, Nome, Cognome, Eta) VALUES (4, 'Manuele', 'Carra', 27) INSERT INTO dbo.Utenti (Id, Nome, Cognome, Eta) VALUES (5, 'Matteo', 'Celaschi', 29) GO

A questo punto, eccoti un METODO che fa quello che ti serve (genera il CSV partendo dal db):
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

E' sufficiente chiamare la Sub passando il percorso completo del file .csv ("C:\prova.csv", ad esempio).
>
>l'unica cosa che mi è parsa di capire è che per fare quello che voglio fare non bastano due righe di codice sql..please help me
Come hai visto, sono poche di più..
Detto questo, corri subito a studiarti ADO.Net, che è alla base di ogni interrogazione su database
Spero ti sia stato di aiuto..
Ciao!

Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

ciccioherz Profilo | Junior Member

grazie mille..sei stato molto chiaro.

ADO.NET lo conosco piuttosto bene, il codice che hai usato è vb, io l'ho trasformato in c#.
in altre parole non fai altor che scrivere i vari campi su un file usando un oggetto streamwriter separati dal ";", in modo da farli leggere correttamente da excel.

Ottimo, grazie mille.

alx_81 Profilo | Guru

>grazie mille..sei stato molto chiaro.
di nulla!
>
>ADO.NET lo conosco piuttosto bene, il codice che hai usato è
>vb, io l'ho trasformato in c#.
meglio così avevo capito che non lo conoscessi molto..

>in altre parole non fai altor che scrivere i vari campi su un
>file usando un oggetto streamwriter separati dal ";", in modo
>da farli leggere correttamente da excel.
Esatto.. nulla di più..
>
>Ottimo, grazie mille.
Se ritieni che ti sia stato di aiuto, accetta la risposta così chiudiamo il thread
ciao!
Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2022
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5