2010-04-05 6 views
0

Je dois importer le contenu d'une feuille de calcul dans mon projet asp.net. Le code derrière est C#. J'ai trouvé comment localiser la feuille de calcul sur l'ordinateur de l'utilisateur et comment importer les données d'une feuille de calcul donnée dans un datable. Le problème est que je ne connais peut-être pas le nom de la feuille de calcul à l'avance. Comment puis-je présenter à l'utilisateur une liste des feuilles de travail disponibles et lui demander de choisir une feuille?Importer une feuille de calcul dans un programme asp.net et répertorier les feuilles de calcul

Bob

+0

Salut, Bob. Bienvenue à StackOverflow! Vous pouvez spécifier * comment * vous lisez le document Excel. Utilisez-vous COM Interop ou une bibliothèque tierce? –

+0

Bien sûr. J'utilise OleDbConnection objConn = null; objConn = new OleDbConnection (pConnectionString); où pConnectionString = "Fournisseur = Microsoft.Jet.OLEDB.4.0; –

Répondre

1

Vous ne pouvez pas dire la page ASP.NET où chercher sur le PC de l'utilisateur pour un fichier. Si c'est le cas, rien ne vous empêcherait d'espionner toute la machine de l'utilisateur et de recueillir des informations personnelles.

Votre option est présente l'utilisateur avec un contrôle de téléchargement de fichier (le plus pratique étant le contrôle serveur asp: FileUpload) et permettant à l'utilisateur de sélectionner le fichier à soumettre. Si vous avez besoin de beaucoup plus de contrôle que cela, vous devrez utiliser autre chose que (ou en plus) ASP.NET, comme une application winform ou console qui réside sur la machine de l'utilisateur.

+0

Bonjour Anthony, Merci de votre réponse. Vous semblez avoir mal compris la question. Je ne cherche pas comment trouver un fichier sur l'ordinateur de l'utilisateur mais plutôt comment lister les feuilles de calcul dans une feuille de calcul que j'ai trouvé. Par ailleurs, j'ai trouvé que AsyncFileUpload fonctionne mieux que FileUpload. J'ai eu des problèmes pour faire fonctionner FileUpload. Bob –

0

Je trouve la réponse:

OleDbConnection objConn = null; objConn = new OleDbConnection (pConnectionString); // où pConnectionString ressemble // "Provider = Microsoft.Jet.OLEDB.4.0; Source de données = C: \ Source \ Sheetname.xls; Extended // Properties = Excel 8.0;" // Ouvre la connexion avec la base de données. objConn.Open(); // Récupère la table de données contenant le guid schema, ainsi que les noms de feuilles. dt = objConn.GetOleDbSchemaTable (OleDbSchemaGuid.Tables, null);

les lignes de dt (une datatable contient les noms des feuilles de calcul)

Questions connexes