En essayant de lire un fichier Excel avec EPPlus fonctionne sur le serveur, mais pas par le biais d'un navigateur
Quand j'ai publié mon projet et il a couru sur le serveur, il a travaillé. EPPlus trouvé tous les 4 feuilles de travail, réitéré à travers eux, et transféré mes données SQL.
Mais quand je le lance via mon navigateur, ou mes collègues de navigateur, il affiche 0 feuilles de calcul.
Une idée de quoi cela peut-il se passer? Il n'y a pas beaucoup pour le code, à ce point, mais voici la partie:
using (ExcelPackage package = new ExcelPackage(new FileInfo(strFile)))
{
if (package.Workbook.Worksheets.Count <= 0)
strError = "Your Excel file does not contain any work sheets";
else
{
foreach (ExcelWorksheet worksheet in package.Workbook.Worksheets)
{
Si la version de travail a été sur le serveur, mais aussi de navigateur? Le fichier a déjà été sur le serveur? Le non-version de travail a été via un navigateur avec un fichier téléchargé? Avez-vous vérifié si le fichier a été téléchargé correctement?
Oui, c'était par le navigateur sur le serveur et le fichier est sur le serveur. Je vais double vérifier que le fichier a été téléchargé correctement, mais si ce n'était pas le cas, EPPlus généralement déclenche une erreur.
Yup. C'est juste une habitude.
J'ai juste essayé de vérifier le colis.Fichier.La longueur de la propriété pour voir comment grand que le fichier a été après l'upload. Mais il a jeté une exception en disant qu'il ne pouvait pas trouver le fichier. Je suis à l'aide d'un DevExpress de contrôle à télécharger le fichier. Le chemin d'accès au fichier qu'il montre c'est "'C:\fakepath\." Je suppose que EPPlus ne charge pas le fichier dans la mémoire et plutôt besoin d'une connexion permanente à internet pour le chemin d'accès physique.
Oui, c'était par le navigateur sur le serveur et le fichier est sur le serveur. Je vais double vérifier que le fichier a été téléchargé correctement, mais si ce n'était pas le cas, EPPlus généralement déclenche une erreur.
package.Workbook.Worksheets.Count
ne sera jamais inférieure à 0. Si vous avez seulement besoin de tester si elle est égale à 0. Je sais que c'est pas vraiment liée à ce que vous demandez, mais juste une observation.Yup. C'est juste une habitude.
J'ai juste essayé de vérifier le colis.Fichier.La longueur de la propriété pour voir comment grand que le fichier a été après l'upload. Mais il a jeté une exception en disant qu'il ne pouvait pas trouver le fichier. Je suis à l'aide d'un DevExpress de contrôle à télécharger le fichier. Le chemin d'accès au fichier qu'il montre c'est "'C:\fakepath\." Je suppose que EPPlus ne charge pas le fichier dans la mémoire et plutôt besoin d'une connexion permanente à internet pour le chemin d'accès physique.
OriginalL'auteur ernest | 2014-03-28
Vous devez vous connecter pour publier un commentaire.
EPPlus pouvez charger un fichier dans la mémoire. Vous êtes tout simplement pas faire de cette façon. Je pense que si vous faites cela, vous êtes moins susceptibles d'avoir des problèmes de lecture à partir du système de fichiers. Vous pouvez tourner les fichiers téléchargés dans un tableau d'octets sans avoir comme un fichier, mais dans mon exemple, je suis de l'ouverture d'un fichier existant. Si vous fournissez le code de la façon dont vous avez télécharger le fichier, je peux mettre à jour mon exemple.
OriginalL'auteur mason