Visual C++ .NET - Guardar en Storage de Azure un excel a partir de una Vista de Sql

 
Vista:
sin imagen de perfil

Guardar en Storage de Azure un excel a partir de una Vista de Sql

Publicado por Isaac (1 intervención) el 19/10/2015 18:50:49
Buen dia
No se si se pueda
Quiero a partir de una vista en SQL, generar un excel y que automaticamente se almacene en el Storage de Azure
Actualmente ya genero el Excel pero se descarga en la maquina, lo que me gustaria es que en lugar de eso descarguen directamente el archivo de la nube

Mi excel lo genero algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public ActionResult ExportDataCapacitaT()
{
	GridView gv = new GridView();
 
	gv.DataSource = Funciones.RepositoriosTablas.GetArchivoEX();
	gv.DataBind();
	Response.ClearContent();
	Response.Buffer = true;
 
	string filename = "Excel";
	Response.AddHeader("content-disposition", "attachment; filename=" + filename + ".xls");
 
 
 
	Response.ContentType = "application/ms-excel";
	Response.Charset = "";
	StringWriter sw = new StringWriter();
	HtmlTextWriter htw = new HtmlTextWriter(sw);
 
	gv.RenderControl(htw);
	Response.Output.Write(sw.ToString());
	Response.Flush();
	Response.End();
	var redirectUrl = "";
	EnviaCorreoERROR("CAPACITAT");
	redirectUrl = Url.Action("Index", "Resumen", new { corte = 0 });
	return RedirectToAction(redirectUrl);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Generar y almacenar Excel directamente en Azure Storage desde Vista SQL

Publicado por Alejandro (265 intervenciones) el 14/02/2024 00:03:53
Isaac, para almacenar directamente el archivo en Azure Storage en lugar de descargarlo en la máquina del usuario, puedes seguir los siguientes pasos:

1. Generar el archivo Excel:
Utiliza una biblioteca de manejo de archivos Excel, como `EPPlus` o `ClosedXML`, para generar el archivo Excel en lugar de renderizarlo en una GridView. Asegúrate de que la biblioteca que elijas sea compatible con la generación de archivos en un entorno sin interfaz gráfica.

Por ejemplo, usando `ClosedXML`:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var workbook = new XLWorkbook();
var worksheet = workbook.Worksheets.Add("Sheet1");
 
// Agrega los datos al worksheet según tu lógica
// ...
 
// Guarda el archivo en un MemoryStream
using (MemoryStream memoryStream = new MemoryStream())
{
    workbook.SaveAs(memoryStream);
    memoryStream.Seek(0, SeekOrigin.Begin);
 
    // Guarda el archivo en Azure Storage
    GuardarArchivoEnAzureStorage(memoryStream, "nombre_del_archivo.xlsx");
}


2. Guardar en Azure Storage:
Implementa la lógica para guardar el archivo en Azure Storage. Puedes utilizar la biblioteca `Azure.Storage.Blobs` para interactuar con Azure Blob Storage.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
 
// ...
 
private void GuardarArchivoEnAzureStorage(MemoryStream archivoStream, string nombreArchivo)
{
    string connectionString = "TuConnectionStringDeAzureStorage";
    string containerName = "NombreDeTuContenedor";
 
    var blobServiceClient = new BlobServiceClient(connectionString);
    var blobContainerClient = blobServiceClient.GetBlobContainerClient(containerName);
 
    // Sube el archivo al contenedor en Azure Storage
    var blobClient = blobContainerClient.GetBlobClient(nombreArchivo);
    blobClient.Upload(archivoStream, true);
}

Asegúrate de reemplazar `"TuConnectionStringDeAzureStorage"` y `"NombreDeTuContenedor"` con la información correcta.

3. Eliminar el renderizado en response:
Elimina las líneas que envían el archivo como respuesta al cliente, ya que ahora queremos almacenarlo directamente en Azure Storage y no descargarlo en la máquina del usuario.

4. Redirección y manejo de errores:
Mantén el código de redirección y el manejo de errores según tus requisitos.

Ten en cuenta que deberás instalar las bibliotecas necesarias a través de NuGet Package Manager o mediante el archivo `.csproj`.

Este enfoque te permitirá generar el archivo Excel y almacenarlo directamente en Azure Storage sin descargarlo en la máquina del usuario. Asegúrate de tener la configuración de conexión y permisos adecuados para acceder a tu cuenta de almacenamiento en Azure.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar