2010-05-20 3 views
0

Je voudrais utiliser le type de fichier d'entrée HTML dans ma page ASPX pour permettre à l'utilisateur de rechercher un fichier Excel, puis lire le contenu de la feuille excel par programme.Si je veux lire la feuille Excel, j'ai besoin du chemin complet du fichier pour se connecter à la feuille Excel en utilisant asp.net.Je ne comprends pas comment puis-je obtenir le chemin complet du fichier.Problème pour obtenir le chemin complet du fichier téléchargé en utilisant le type de fichier d'entrée HTML pour lire le contenu du fichier

Je sais que je peux obtenir le nom de fichier en utilisant la propriété postedFile.FileName. Mais j'ai besoin du chemin complet du fichier.

Quelqu'un pourrait m'aider s'il vous plaît avec ça.

Merci.

Répondre

0

La notion de chemin d'accès complet au fichier n'existe pas. Le serveur n'a aucun moyen de savoir où le fichier est stocké sur l'ordinateur client. Tout ce que vous pouvez savoir dans votre application ASP.NET est le nom de fichier et le contenu du fichier téléchargé.

+0

merci pour la réponse. Si tel est le cas, est-ce que je peux permettre à l'utilisateur de rechercher une feuille Excel et de lire son contenu par programme en utilisant asp.net/C#? – kranthi

+0

Oui bien sûr, vous mettez un 'FileUpload' dans votre page aspx qui permet à l'utilisateur de parcourir et de sélectionner un fichier stocké sur son ordinateur et de le télécharger sur le serveur lorsqu'il soumet le formulaire. Une fois sur le serveur, vous utilisez la collection 'Files' pour lire tous les noms de fichiers et leur contenu. Vous utilisez 'UpdatedFile.InputStream' qui contient le flux du fichier. –

+0

Voulez-vous dire le contrôle de Fileupload asp.net? Si oui, il n'est pas possible d'obtenir la même fonctionnalité en utilisant le type de fichier d'entrée HTML? – kranthi

0

Vous pouvez utiliser OpenXml SDK (http://msdn.microsoft.com/en-us/library/dd608815(office.14).aspx) pour ouvrir la feuille Excel par programmation, directement à partir du flux du fileupload.

using DocumentFormat.OpenXml.Packaging; 
using DocumentFormat.OpenXml.Spreadsheet; 
using DocumentFormat.OpenXml; 

FileUpload fu = (FileUpload)Page.FindControl("fuExcel"); 
using (SpreadsheetDocument uploadedWorkbook = 
SpreadsheetDocument.Open(fu.FileContent, true)) 
{ 
    //interrogate the file here 
} 

Le contrôle FileUpload ne fournit aucune information sur le chemin d'accès au fichier. Vous obtenez:

  • Le nom du fichier (qui est, abc.xyz, dépouillé de toute information de chemin), comme FileName
  • un courant du contenu du fichier comme ContenuFichier
  • Un tableau d'octets dans la fichier en tant que FileBytes
Questions connexes