Convertir DataTable en feuille de calcul—DataTableFormatProvider

Cet article explique comment utiliser le nouveau DataTableFormatProvider pour convertir une feuille de calcul en table de données, et vice versa.
Le nouveau DataTableFormatProvider est désormais disponible dans la bibliothèque RadSpreadProcessing. Ce fournisseur de format vous permet de convertir facilement une feuille de calcul en DataTable et vice versa. Cet article montre comment utiliser le fournisseur et implémenter une application connectée à une base de données.
La première étape consiste à créer l'exemple d'application WPF. Allez-y et créez une application comme celle de l'image suivante (sous l'image se trouve un exemple de XAML). L'application dispose de deux boutons qui vous permettent d'obtenir un ensemble prédéfini de tables à partir de la base de données. Avec le troisième bouton, vous pouvez obtenir tous les noms de table de la base de données. Le quatrième bouton permet d'obtenir un tableau en précisant ses noms dans la zone de texte. Le contrôle RadSpreadsheet affichera les données.
XAML pour l'application ci-dessus :
<Window x :Class[19659008]="DataTableFormatProviderDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
Titre="Fenêtre principale" Hauteur="520" Largeur="819.4" >
<Grid>
<Grid.ColumnDefinitions>[19659033]<ColumnDefinition Width="150"/>
<ColumnDefinition Width[19659008"Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation ="Vertical">
<telerik:RadButton Contenu="Recevoir les e-mails " Marge="2,10" Clic="GetEmails_Click"[19659009]/>
<telerik:RadButton Content="Obtenir le pays/la région" Marge=[19659009]"2,10" Clic="GetCountryRegion_Click"/>
<t elerik:RadButton Contenu="Obtenir tous les noms de tables" Margin="2,10 " Click="GetTableNames"/>
<telerik:RadButton Contenu= "Obtenir un tableau personnalisé" Marge="2,10" Clic="GetCustomTable_Click"/>
<Label Content="Table Name" Marge ="2,10"/>
<TextBox Hauteur="23 " TextWrapping="Wrap" Text="Ventes.Client" Marge ="2,10" Name="textBox1"/>
</StackPanel>
<telerik:RadSpreadsheet Grid.Column="1" x:Nom ="radFeuille de calcul"/>
</Grille>
</Fenêtre>
Maintenant, nous allons faire fonctionner cette application. Premièrement, nous avons besoin des trois fonctions principales. La première fonction créera une connexion SQL et obtiendra les données d'une table spécifique (en utilisant son nom, dans ce cas, la base de données AdventureWorks2019 est utilisée) :
public DataTable GetDataFromDatabase( chaîne table)
{
chaîne requête = "sélectionnez * dans " + table;
DataTable dataTable = new DataTable();
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(query, conn);
conn.Ouvrir();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Remplir(dataTable);
conn.Fermer();
da.Dispose();
return dataTable;
}
La deuxième fonction utilisera le nouveau DataTableFormatProvider et convertir le DataTable en une feuille de calcul. La troisième fonction affectera la nouvelle feuille de calcul au contrôle RadSpreadsheet et ajustera automatiquement toutes les colonnes. Voici l'endroit où vous pouvez personnaliser le processus d'importation en utilisant également les paramètres disponibles.
DataTableFormatProvider provider = new DataTableFormatProvider() ;
private void ConvertToWorkSheet(DataTable dataTable)
{
this.radSpreadsheet.Classeur = fournisseur.Import(dataTable);
var usedColumnsCount = this.radSpreadsheet.Workbook.ActiveWorksheet.UsedCellRange.Column Count;
this[19659009].radSpreadsheet.Workbook.ActiveWorksheet.Columns[0, usedColum nsCount].AutoFitWidth();
}
public void AddTableToSpreadSheet(String tableName )
{
DataTable dataTable = GetDataFromDatabase(tableName);
ConvertToWorkSheet(dataTable)};
Une fois que nous avons toutes les fonctions requises, nous n'avons qu'à implémenter des gestionnaires d'événements pour les boutons et la zone de texte. Par exemple, l'implémentation suivante appelle les méthodes ci-dessus et transmet le nom de la table.
private void GetEmails_Click(object sender, RoutedEventArgs e)
{
AddTableToSpreadSheet("Person.EmailAddress");
}
private void GetCountryRegion_Click[19659009(object sender, RoutedEventArgs e)
{
AddTableToSpreadSheet("Person.CountryRegion");
}
Pour la zone de texte, vous pouvez inclure un bloc try/catch au cas où le nom saisi dans la zone de texte n'est pas valide.
private void GetCustomTable_Click([19659141]object sender, RoutedEventArgs e)
{
try
{
string tablename = thi s.textBox1.Text;
AddTableToSpreadSheet(tablename);
}
catch[19659255]{
MessageBox.Show("Table Not Found");
}
}
Cette dernière étape consiste à obtenir toutes les tables du base de données et afficher leurs noms dans la feuille de calcul.
private void GetTableNames(object sender, RoutedEventArgs e)
{
SqlConnection conn = new SqlConnection(connString);
conn.Ouvrir();
DataTable tableNames = conn.GetSchema("Tables");
ConvertToWorkSheet(09tableNames;
ConvertToWorkSheet(09tableNames ]);
conn.Fermer();
}
C'est tout ! Vous pouvez maintenant travailler avec votre application, comme le GIF ci-dessous.
Essayez-le et partagez vos commentaires
Au cas où vous n'auriez pas encore essayé Telerik Document En cours de traitement, utilisez le bouton ci-dessous pour obtenir une version d'essai et explorer toutes les fonctionnalités et possibilités des bibliothèques.
Si vous connaissez déjà le package, ne le faites pas oubliez que nous sommes impatients d'entendre vos commentaires et que nous serons très heureux de les entendre. N'hésitez pas à nous laisser un commentaire ci-dessous pour partager vos réflexions. Ou visitez notre Portail de commentaires sur les bibliothèques de traitement de documents et faites-nous savoir si vous avez des suggestions ou si vous avez besoin de fonctionnalités particulières.
Source link