Esportare tabella su csv

lunedì 21 maggio 2012 - 10.05
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows 7  |  Visual Studio 2008  |  SQL Server 2008 R2

Codadilupo Profilo | Newbie

Ciao a tutti,
Premessa: lavoro con VS 2008 in VB su un DB in SQL Server 2008 R2 e mi auguro di aprire il Thread nel posto giusto.

Spero possiate aiutarmi (Alex pensaci tu....)
Tempo fa grazie all'aiuto di Alex (ecco il motivo del pensaci tu), sono riuscito ad esportare dati contenuti in una DGV in un file .csv
Alcune volte mi è capitato che durante l'esportazione il contenuto di alcuni campi venga distorto (il campo nella DGV è diverso dal campo csv).

Questo dipende dal fatto che durante l'esportazione il formato delle celle per default è "Generale"?
Se sì, come faccio a forzarlo su "Testo", per esempio?

Inoltre: ho dei campi in tabella formattati come Text (quindi il contenuto è piuttosto ampio), questo, in qualche modo, può creare problemi nell'esportazione?
Se all'interno del campo formattato come text, è stato inserito 1 o piu volte il Carriage Return, nell'esportazione in csv esporta anche il CR, col risultato di generare un disallineamento.

Come posso fare per ovviare a tale inconveniente?

Grazie per l'aiuto.

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao

>Alcune volte mi è capitato che durante l'esportazione il contenuto
>di alcuni campi venga distorto (il campo nella DGV è diverso
>dal campo csv).
>Questo dipende dal fatto che durante l'esportazione il formato
>delle celle per default è "Generale"?
>Se sì, come faccio a forzarlo su "Testo", per esempio?
Scusami, ma un csv è un semplice file di testo in cui i valori di ogni ipotetica colonna sono separati da virgole. Quello di cui tu parli è il parser di Excel, che decide, campionando, quale tipo dare ad un particolare campo. Se non produci un excel direttamente, con un csv secondo me puoi al massimo qualificare il testo con le ". Hai provato a aprire il csv come file di testo e poi dire ad Excel di stimare il tipo dei campi su un campione?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

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

Codadilupo Profilo | Newbie

Ciao mitico Alex, è sempre un piacere risentirti.
Mi spiego meglio; ovviamente hai ragione nell'asserire che il csv è un file di testo, ma per questioni lavorative DEVO esportare il file in formato csv.
Il contenuto proviene da una tabella di SQL, i campi sono (come tipo dati) Data e Text.
Ora, correggimi se sbaglio, il tipo dato text può contenere circa 1 mld di caratteri, mentre la singola cella di Excel circa 36.000. Pertanto, nel caso in cui avessi nel campo caratteri >36.000, come posso fare ad esportare il record in maniera corretta? Hai dei suggerimenti?
Inoltre, per produrre un file direttamente su Excel, ha qualche suggerimento? (potrebbe servirmi in futuro).
Grazie

alx_81 Profilo | Guru

>Ora, correggimi se sbaglio, il tipo dato text può contenere circa
>1 mld di caratteri, mentre la singola cella di Excel circa 36.000.
>Pertanto, nel caso in cui avessi nel campo caratteri >36.000,
>come posso fare ad esportare il record in maniera corretta? Hai
>dei suggerimenti?
se non ricordo male text è max 2giga (mld). Per excel dipende, che versione hai? Se 2010 dici corretto, altrimenti sono pure meno se non ricordo male.
comunque dai un'occhiata qui per esser certo: http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP005199291.aspx

In quel caso credo che l'unica sia dividere in più campi il testo, facendo una divisione sulla dimensione massima accettata da excel.
E qui dovrai programmare un pochino in .net.

>Inoltre, per produrre un file direttamente su Excel, ha qualche
>suggerimento? (potrebbe servirmi in futuro).
In quel caso o usi un po' di codice per generare il tuo worksheet (ti serve sempre .net) oppure, se hai almeno una sql server standard, puoi esportare con un package integration service.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5