Da excel a sql 2005

sabato 15 marzo 2008 - 11.25

memmo77 Profilo | Expert

Posso utilizzare il Bulk Insert per un file Excel?
In sostanza devo leggere il contenuto delle celle di un file excel di + fogli. Come contenuto non intendo solo il dato interno ma anche se ci sono applicate delle formule.

Cosa mi consigliate? Grazie

lbenaglia Profilo | Guru

>Posso utilizzare il Bulk Insert per un file Excel?
Dipende, se il worksheet viene esportato come CSV la risposta è si

>In sostanza devo leggere il contenuto delle celle di un file
>excel di + fogli. Come contenuto non intendo solo il dato interno
>ma anche se ci sono applicate delle formule.
Ovvero? In presenza di formule cosa dovresti fare? Importare il valore calcolato?
In questo caso la BULK INSERT non può esserti d'aiuto.

>Cosa mi consigliate? Grazie
Boh, io darei un'occhiata ai DTS (SQL Server 2000) o ai SSIS (SQL Server 2005)...

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

alx_81 Profilo | Guru

>Boh, io darei un'occhiata ai DTS (SQL Server 2000) o ai SSIS (SQL Server 2005)...
Che ne dici di una OPENROWSET da Excel?
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ciao!

Alx81 =)

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

memmo77 Profilo | Expert

Nel caso di formule, dovrei proprio copiare la formula. Diciamo che c3 sia A1+B2, io dovrei leggere, si il valore di C3 ma anche la formula A1+B2.
Comunque faccio delle prove, magari utilizzando OPENROWSET e vi faccio sapere.
Grazie

memmo77 Profilo | Expert

Sto utilizzando OPENROWSET ho modificato il valore :

USE master;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', '1';
RECONFIGURE WITH OVERRIDE;

ma questo il messaggio che mi ritorna sql:

Il provider OLE DB "Microsoft.Jet.OLEDB.4.0" per il server collegato "(null)" ha restituito il messaggio "Il modulo di gestione di database Microsoft Jet non è riuscito a trovare l'oggetto 'Foglio1$'. Assicurarsi che l'oggetto esista e che il nome e il percorso siano digitati correttamente.".
Messaggio 7350, livello 16, stato 2, riga 1
Impossibile ottenere le informazioni di colonna dal provider OLE DB "Microsoft.Jet.OLEDB.4.0" per il server collegato "(null)".

Ho fatto un documento prova.xls con due campi avvalorati che ho messo su c:\ . Considera che ho installato office 2007 non so se questo possa dare problemi.

Dove devo mettere il file xls?

Ciao e grazie

alx_81 Profilo | Guru

>Ho fatto un documento prova.xls con due campi avvalorati che
>ho messo su c:\ . Considera che ho installato office 2007 non
>so se questo possa dare problemi.
>Dove devo mettere il file xls?
Il file lo metti dove vuoi, piuttosto, controlla su questo link la corretta connectionstring per excel 2007..

http://www.connectionstrings.com/?carrier=excel2007
>
>Ciao e grazie
di nulla!

Alx81 =)

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

memmo77 Profilo | Expert

allora, ho trovato questo

http://blogs.techrepublic.com.com/datacenter/?p=205

e funziona anche bene. Solo una cosa, come posso copiare le "formule" contenute nelle celle? Vorrei copiare la formula e scriverla su un campo db.

Ciao

alx_81 Profilo | Guru

>allora, ho trovato questo
>
>http://blogs.techrepublic.com.com/datacenter/?p=205
Quello è SSIS.. come ti diceva Lorenzo..
Ormai lo uso da tanto tempo tanto che ci ho fatto un blog .
Però non ti saprei dire come si importano anche le formule.. dovrei fare delle prove.. con il link che hai postato riesci a caricare i valori delle celle in una tabella sql server.
Alx81 =)

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

wally74 Profilo | Newbie

Buongiorno a tutti,
Ho un problema con la connessione indicata. Una volta analizzata la query sotto Sql Management Studio, compare il messaggio di errore: Il Provider OLE DB='Provider=Microsoft.ACE.OLEDB.12.0' non è stato registrato. Domanda forse banale, per voi, come si registra?

P.S.: Ho la versione Express
Più conosci, più ti rendi conto di non conoscere e nell'abbondanza della conoscenza non manca la vessazione

alx_81 Profilo | Guru

>Buongiorno a tutti,
>Ho un problema con la connessione indicata. Una volta analizzata
>la query sotto Sql Management Studio, compare il messaggio di
>errore: Il Provider OLE DB='Provider=Microsoft.ACE.OLEDB.12.0'
>non è stato registrato. Domanda forse banale, per voi, come si
>registra?
leggi qui
http://weblogs.asp.net/cazzu/archive/2007/11/16/the-microsoft-ace-oledb-12-0-provider-is-not-registered-error-with-vista-64bit.aspx

La prossima volta apri un altro thread, grazie
--

Alessandro Alpi | SQL Server MVP

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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5