Enregistrement du fichier dans l objet de réponse

Enregistrer le fichier dans l’objet Response

Il est également possible de générer un fichier dynamiquement et de l’envoyer directement vers un navigateur client. Pour ce faire, utilisez une version surchargée spéciale de la méthode Save qui accepte les paramètres suivants:

L’énumération ContentDisposition détermine si le fichier envoyé au navigateur fournit l’option de s’ouvrir directement dans le navigateur ou dans une application associée à .xls/.xlsx ou une autre extension.

L’énumération contient les types de sauvegarde prédéfinis suivants :

Type Description
Pièce jointe Envoie la feuille de calcul au navigateur et l’ouvre dans une application en tant que pièce jointe associée à .xls/.xlsx ou autres extensions.
Incorporée Envoie le document au navigateur et offre la possibilité de sauvegarder la feuille de calcul sur le disque ou l’ouvrir dans le navigateur.

Fichiers XLS

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
HttpResponse Response = null;
// Load your source workbook
Workbook workbook = new Workbook();
if (Response != null)
{
// Save in Excel2003 XLS format
workbook.Save(Response, dataDir + "output.xls", ContentDisposition.Inline, new XlsSaveOptions());
Response.End();
}

Fichiers XLSX

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
HttpResponse Response = null;
// Load your source workbook
Workbook workbook = new Workbook();
if (Response != null)
{
// Save in Xlsx format
workbook.Save(Response, dataDir + "output.xlsx", ContentDisposition.Attachment, new OoxmlSaveOptions());
Response.End();
}

Fichiers PDF

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
HttpResponse Response = null;
// Creating a Workbook object
Workbook workbook = new Workbook();
if (Response != null)
{
// Save in Pdf format
workbook.Save(Response, dataDir + "output.pdf", ContentDisposition.Attachment, new PdfSaveOptions());
Response.End();
}

Remarque

En raison de l’objet “System.Web.HttpResponse” qui n’est pas inclus dans .NET5 et .Netstandard, Cette fonction n’existe donc pas dans la version Aspose.Cells .NET5 et .Netstandard, vous pouvez vous référer au code suivant pour sauvegarder le fichier dans le flux, puis effectuer l’opération sur le flux.

public async Task<IActionResult> DownloadExcel()
{
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
string filePath = dataDir + "Book1.xlsx";
// Load your source workbook
Workbook workbook = new Workbook(filePath);
// Save the workbook to a memory stream
var stream = new MemoryStream();
workbook.Save(stream, SaveFormat.Xlsx);
// Reset the position of the stream to 0
stream.Position = 0;
// Set the content type and file name
var contentType = "application/octet-stream";
var fileName = "output.xlsx";
// Set the response headers
Response.Headers.Add("Content-Disposition", $"attachment; filename=\"{fileName}\"");
Response.ContentType = contentType;
// Write the file contents to the response body stream
await stream.CopyToAsync(Response.Body);
// Close the file stream
stream.Dispose();
// Return the response
return new EmptyResult();
}