1) comment écrire excel pour memorystream...2) comment faire pour télécharger un fichier excel à partir du navigateur...à l'aide de Micosoft.Bureau de.Interop.Excel et c#
//i'm using VS 2008, dll as Microsoft.Office.Interop.Excel
//sample code..
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);//create new work book
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//CREATING ONE Rectangle shape
xlWorkSheet.Shapes.AddShape(MsoAutoShapeType.msoShapeRectangle, 47, 24, 500, 90);
Microsoft.Office.Interop.Excel.Shape[] myShapes = new Microsoft.Office.Interop.Excel.Shape[1];
//adding textbox
myShapes[0] = xlWorkSheet.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 75, 60, 70, 30);
myShapes[0].TextFrame.Characters(misValue, misValue).Text = "Tracking";
//option de téléchargement à partir du navigateur.
context.Response.ContentType = "application/vnd.ms-excel";
context.Response.AddHeader("Content-Disposition", "attachment; filename= report.xls");
//ici, je suis une utilisation temporaire d'un fichier texte.mais j'ai besoin sans l'aide d'un fichier temporaire..
string file = context.Server.MapPath("new.txt");
Byte[] myByte = File.ReadAllBytes(file);
context.Response.Clear();
context.Response.BinaryWrite(myByte);
context.Response.Flush();
context.Response.Close();
Peut-on utiliser une interface Ipersiststream pour enregistrer les objets dans memorystream ?
- Ne faites pas ça! Le Bureau de l'Automatisation des bibliothèques sont conçus pour être utilisés à l'intérieur d'une application de bureau. Ils échouent dans de nombreuses façons différentes si vous essayez de les utiliser à partir d'un ASP.NET application.
- Pourquoi ne pas les exporter au format CSV?
- ne pas utiliser n'importe quel de que de ASP.NET-période.
- C'est super facile à faire avec des fichiers xlsx - ils sont XML. Vous pouvez générer le XML et de mettre le type de contenu comme des fichiers excel 2007. Si vous avez un bien formaté fichier excel pour commencer, vous pouvez l'enregistrer au format xml et de l'ouvrir dans le bloc - notes il permettra de préserver la mise en forme du code.
Vous devez vous connecter pour publier un commentaire.
Si vous avez un intérêt dans la création d'un document Excel avec mise en forme plus que le contrôle GridView pouvez le faire, vous voudrez peut-être prendre un coup d'oeil à EPPlus:
http://epplus.codeplex.com/
La bibliothèque est capable de créer des fichiers Excel avec la possibilité de personnaliser les cellules, formats, etc.
Si le contrôle GridView qui fonctionne pour vous, allez-y, mais si il n'y a pas d'autres options Excel. Vous devriez être en mesure d'enregistrer le contenu d'un flux de mémoire et de sortie du flux de mémoire pour le navigateur.
Voici un exemple d'un FileResult handeler que j'ai utilisé avec ASP.NET MVC. Le concept peut être appliqué à des WebForms, il ne fait qu'écrire dans le flux de réponse. Ma classe est une propriété de la table de données à charger (ce.dataTable) et le nom de fichier que vous souhaitez que le navigateur télécharge le fichier (nom de fichier) et le carnet de travail (nom de cet.nomduclasseur)
Je suis complètement d'accord avec John Saunders, peut-être vous devriez essayer de cette façon.
Lier le jeu de données à GridView, puis de le télécharger au format excel.
Utiliser en dessous de segment de code pour obtenir la valeur de la commande
Maintenant Créer une méthode qui permettra de télécharger les données de contrôle gridview.
C'est tout ce que vous devez faire, appelez la méthode ci-dessus pour télécharger les données.