La création d'un fichier excel avec EPPlus, mais il est toujours en lecture seule
Je suis de la création/envoi d'un fichier avec EPPlus comme ceci:
using (ExcelPackage package = new ExcelPackage())
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet");
... //create file here
Response.Clear();
Response.ContentType = "application/xlsx";
Response.AddHeader("content-disposition", "attachment; filename=" + filename + ".xlsx");
Response.BinaryWrite(package.GetAsByteArray());
Response.End();
}
Tout fonctionne bien, sauf le fichier en revient toujours en lecture seule, et je ne peux pas comprendre pourquoi. Dans le "package" de l'objet, il y a un fichier objet avec un champ IsReadOnly, mais le fichier objet est null. Je pense que je ne suis pas de la création du fichier xcel correctement, mais c'est la seule façon que je pouvais comprendre comment créer le fichier. D'abord j'ai été en utilisant un flux de mémoire, mais cela, j'ai couru dans des problèmes lorsque le fichier excel a été plus grand que 50 lignes.
Modifier/mise à jour: j'ai Donc lancer le bloc de code en cliquant sur un bouton "Télécharger en tant que Fichier Excel". Le code s'exécute, la création du fichier, et l'utilisateur est invité à un "Vous avez choisi d'ouvrir: thisismyexcelfile.xlsx qui est un: XLSX fichier (ici la taille) à partir de: monsite. Ce qui devrait firefox avec ce fichier?" Après avoir sélectionné la fonction "Ouvrir avec OpenOffice Calc" la spreedsheet s'ouvre et affiche de manière appropriée, mais est en lecture seule.
Modifier/mise à jour: j'ai vérifié les propriétés du fichier avec OpenOffice. Sous Propriétés/Sécurité, il est d'une "Ouvrir le fichier en Lecture Seule" case à cocher, mais il est déjà décochée et les personnes handicapées.
Question mis à jour pour être plus explicite.
Êtes-vous sûr que c'est pas MS Office? C'est la valeur par défaut pour tous les fichiers téléchargés sur le net. Il rend readonly et donne un avertissement de sécurité.
Je n'ai pas vraiment MS Office, mais j'ai pensé que c'était OpenOffice de le faire. Est il possible que je peux empêcher cela ou dois-je supposer que l'utilisateur sait comment contourner ce problème?
En fait, je pense que c'est le navigateur qui fait le fichier en lecture seule lorsque vous choisissez de l'ouvrir directement. Si vous l'enregistrer quelque part explicitement, cela n'arrive pas. Donc dans tous les cas, le problème n'est pas dans votre code.
OriginalL'auteur dckuehn | 2013-08-05
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé cet exemple, je vois 3 principales différences
Dans cet exemple, le fichier est sauvegardé sur le serveur, envoyé comme réponse, puis supprimé
OriginalL'auteur Mauricio Gracia Gutierrez
Les commentaires, j'ai été en mesure de vérifier que d'enregistrer le fichier à un emplacement sur le disque et de l'ouvrir directement, ne pas ouvrir le fichier en lecture seule, ce qui implique que le problème n'était pas avec le code, mais les navigateurs de la manipulation de fichiers téléchargés à partir d'internet.
OriginalL'auteur dckuehn