2009-10-20 10 views
0

Dans mon application, je télécharge une feuille de calcul à partir de FTP, déplaçant les données lues de la feuille de calcul vers un DataTable et, selon certaines conditions, envoyant une nouvelle feuille de calcul par courrier électronique. tableur).Feuille de calcul de DataTable

Mon problème est de créer la feuille de calcul qui sera envoyée. Je n'arrive pas à comprendre comment ajouter la ligne du DataTable (à l'origine de la feuille de calcul téléchargée) dans la feuille de calcul qui sera envoyée.

DS.Tables(0).Rows.Add(ObjSheet.Range(workTable.Rows(i)) - 1) 

C'est ce que j'ai en ce moment, mais ça ne marche pas. workTable est le DataTable dans lequel les lignes de la feuille de calcul ont été copiées. DS est le DataSet où je place les lignes de la sélection spécifique. Je suis assez sûr que je peux simplifier le flux de données en éliminant le DataTable ou le DataSet.

Pour éviter toute confusion, j'utilise VB2005 - voudrais pouvoir utiliser 2008 pour cela, LINQ simplifie tellement ...

+0

Pourquoi n'utilisez-vous pas simplement Excel pour copier les lignes? – Raptor

+0

J'aurais probablement dû mentionner que c'est la première fois que j'ai fait une sorte de programmation avec des paquets de bureau ... –

Répondre

0

peut vous aider à le faire.

Voir le live ASP.NET (C# & VB) "Excel to Datagrid" échantillons here. Il y a plus d'échantillons - dont certains pourraient s'avérer utiles - here. Clause de non-responsabilité: Je possède SpreadsheetGear LLC

0

L'une des réponses est peut-être pas au programme avec le bureau - si vous pouvez utiliser les formats de fichiers Office 2007 (et étant donné l'existence du pack Office Compatability, il n'y a pas de raison fondamentale pour laquelle vous ne devriez pas, bien qu'il puisse y avoir des problèmes dans un environnement spécifique), vous pouvez utiliser le code .NET, System.IO.Packaging et le Open XML Format SDK 1.0 - C'est .NET 3.0 qui est juste des bibliothèques et donc utilisable depuis VS2005. Plus pragmatiquement, ne soyez pas si désireux (au moins dans un premier temps) de supprimer les étapes intermédiaires - quelque chose que je dois me rappeler à intervalles réguliers.

Si vous commencez par ce qui suit:

1) Charger les données de la source 2) Traiter les données de la source 3) Ecrire le résultat sur la destination

Ensuite, vous être capable de démontrer aux étapes 1 et 2 que vous avez ce que vous voulez, et l'étape 3 devient plus gérable dans le sens où vous essayez simplement de déplacer des données connues d'une application à l'autre. Hmm, c'est plus "pensées" que "répondre" - mais j'espère que ça aide.

+0

Après ma publication initiale, je me suis souvenu de ce que le DataSet était pour. De la feuille de calcul initiale (et donc, le DataTable aussi), je vais chercher les lignes où les conditions sont remplies, et en plaçant seulement quelques lignes de la feuille de calcul entière dans le DataSet, ainsi le flux de données ressemble: Feuille de calcul >> DataTable >> DataSet >> Spreadsheet Comme je l'ai dit, je n'ai jamais rien fait de tel auparavant, donc la solution la plus simple sera certainement la meilleure ici –

Questions connexes