DarioSantarelli.Blog("UgiDotNet");

<sharing mode=”On” users=”*” />
posts - 176, comments - 144, trackbacks - 3

My Links

News


This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights.




Tag Cloud

Archives

Post Categories

My English Blog

lunedì 15 novembre 2010

[WPF 4.0] Esportare dati dal controllo DataGrid

Il controllo DataGrid di WPF 4.0 permette di ottenere “gratis” l’esportazione dei dati associati alla griglia in diversi formati tra cui plain text, CSV e HTML. Tale funzionalità è esposta semplicemente tramite l’invocazione del comando Copy sul controllo, che trasferisce nella Clipboard i dati contenuti nelle celle selezionate, supportando i formati sopra citati (ovviamente i formati CSV e HTML sono i più interessanti nell’ottica dell’esportazione verso altre applicazioni). Nel seguente esempio viene mostrato come generare un file CSV contenente tutte le righe visualizzate in un DataGrid, includendo le intestazioni di colonna sulla prima riga.Il codice è veramente banale:

myDataGrid.SelectAllCells();
myDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
ApplicationCommands.Copy.Execute(null, myDataGrid);
myDataGrid.UnselectAllCells();
string csvData = (string)Clipboard.GetData(DataFormats.CommaSeparatedValue);
Clipboard.Clear();
using (StreamWriter writer = new StreamWriter("C:\\test.csv")) { writer.Write(csvData); }

Se invece si sceglie l’HTML come formato di esportazione, ci dobbiamo attendere un simpatico header aggiuntivo collocato fuori dal DOM che indica dove iniziano e dove finiscono le differenti porzioni di dati. Si possono utilizzare tali informazioni per esportare sia una pagina web intera piuttosto che soltanto il frammento relativo alla tabella dati da inserire eventualmente in un’altro documento. In questo caso l’esempio precedente va semplicemente modificato specificando DataFormats.Html come formato di estrazione dati dalla clipboard. Il risultato che otteniamo è il seguente:

Version:1.0
StartHTML:00000097
EndHTML:00000672
StartFragment:00000133
EndFragment:00000636
<HTML>
<BODY>
<!--StartFragment-->
<TABLE>...Dati...</TABLE>
<!--EndFragment-->
</BODY>
</HTML>

Tag di Technorati: ,

posted @ lunedì 15 novembre 2010 23.40 | Feedback (0) | Filed Under [ WPF ]

Powered by: