Exportar DataTable a CSV en C#

Anexo código que nos permite exportar un DataTable a un archivo plano con extensión CSV desde Visual studio C#

Para este ejemplo creamos un DataTable:

private DataTable TablaEnvioSms()
{
   DataTable dtSms = new DataTable();

   dtSms.Columns.Add("Fila", typeof(string));
   dtSms.Columns.Add("Nombres", typeof(string));
   dtSms.Columns.Add("Apellidos", typeof(string));
   dtSms.Columns.Add("Direccion", typeof(string));
   dtSms.Columns.Add("Telefono", typeof(string));
   return dtSms;
}

Este es el evento Click del boton (btnExportar) en la pagina aspx

protected void btnExportar_Click(object sender, EventArgs e)
    {
        DataTable dtSms = new DataTable();

        //Asignamos estructura del DataTable
        dtSms = TablaEnvioSms();
        DataRow newRow;

        //primera fila
        newRow = dtSms.NewRow();
        newRow["Fila"] = "1";
        newRow["Nombres"] = "Pedro Luis";
        newRow["Apellidos"] = "Ramirez Perez";
        newRow["Direccion"] = "Calle 1 No. 2 2";
        newRow["Telefono"] = "5555";
        dtSms.Rows.Add(newRow);

        //segunda fila
        newRow = dtSms.NewRow();
        newRow["Fila"] = "2";
        newRow["Nombres"] = "Maria tereza";
        newRow["Apellidos"] = "Ramirez Perez";
        newRow["Direccion"] = "Calle 1 No. 2 2";
        newRow["Telefono"] = "44444";
        dtSms.Rows.Add(newRow);
       

        //Realizamos el Llamado al metodo que exporta la estructura del DataTable.
        //Ademas recibe el nombre del archivo CSV y la ruta donde se almacenara.
        DataTableCSVFile(dtSms, "ExportarDatos.csv", "c://");

    }


Método que Exporta los datos y muestra el archivo para abrirlo.

public void DataTableCSVFile(DataTable dt,string sfilename, string strFilePath)
    {     
        StreamWriter sw = new StreamWriter(strFilePath + sfilename, false);
        int iColCount = dt.Columns.Count;

        // Escribiendo las Columnas del DataTable.
        for (int i = 0; i < iColCount; i++)
        {
            sw.Write(dt.Columns[i]);
            if (i < iColCount - 1)
            {
                sw.Write(",");
            }
        }

        sw.Write(sw.NewLine);

        // Escribiendo todas las Filas del DataTable.
        foreach (DataRow dr in dt.Rows)
        {
            for (int i = 0; i < iColCount; i++)
            {
                if (!Convert.IsDBNull(dr[i]))
                {
                    sw.Write(dr[i].ToString());
                }

                if (i < iColCount - 1)
                {
                    sw.Write(",");
                }
            }
            sw.Write(sw.NewLine);
        }
        sw.Close();

        Response.Clear();
        Response.ContentType = "application/csv";
        Response.AddHeader("Content-Disposition", "attachment; filename=" + sfilename);
        Response.WriteFile(strFilePath + sfilename);
        Response.Flush();
        Response.End();
    }

Exportar un Dataset a Excel desde c# es una funcionalidad muy interesante, los invito a consultarla.

Si tienen alguna duda o ampliar la información me cuentan, hasta pronto.
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""


Share:

Consumir Web Service desde C# .Net

Para consumir un Web Service en Visual Studio debemos seguir los siguientes pasos, es muy importante para este ejemplo conocer como Crear Web Service con C# en Visual Studio. Para iniciar a Consumir un Web Service en C#, debemos seguir los siguientes pasos:

Abrimos Visual Studio, seleccionamos en menú File - New Web Site... como lo muestra la siguiente imagen:


Luego nos aparece la siguiente imagen, seleccionamos la ubicación del proyecto desde el botón Browser y damos clic sobre el boton OK:


Seguidamente se crea el proyecto solución como se muestra en la siguiente imagen:


Ahora, empezamos agregar la Referencia Web de nuestro Web Service que deseamos consumir. Primero damos clic derecho en nuestro proyecto y damos clic sobre Add Web Reference... 


Luego nos aparece la siguiente ventana, aquí nos permite colocar la Url del Web Service que deseamos consumir, en la opción URL y damos clic en el boton Go, como se muestra en la siguiente imagen:


Al dar clic en el botón Go, nos aparece un nombre de Web Service por default si es necesario lo cambiamos, para nuestro ejemplo colocamos WSSuma:


Hasta aquí tenemos agregado a nuestro proyecto web, el Web Service que creamos en una publicación anterior llamado Crear Web Service con C# en Visual Studio

Continuando con el ejemplo, el proyecto solución quedaría de la siguiente forma:


A continuación se muestra el código Html de la pagina default.aspx: 


Y el código C# de la pagina default.aspx.cs

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
    //Se instancia en variable local, referencia al web services

    WSSuma.Service wsWeb = new WSSuma.Service();

    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSumar_Click(object sender, EventArgs e)
    {
        /****************************************************************************************************
         * Parametrizar en BD la Url del WebServices ademas proxy y credenciales si las llegas a necesitar
         * 2.   Para nuestro ejemplo solo le vamos a pasar el Url del web services apuntando al servidor web
         *      donde se enceuntra alojado
         * 3.   Anexo codigo para credenciales y proxy
         * 
         *      System.Net.WebProxy proxy = new System.Net.WebProxy("IpProxy");
         *      proxy.Credentials = new System.Net.NetworkCredential("userProxy","passProxy","dominioProxy");
         ****************************************************************************************************/
        try
        {
            wsWeb.Url = "http://10.10.174.16/Appwebservices/service.asmx";
            //Se invoca metodo Suma, se pasan los valores A y B y el resultado se muestra
            lblSuma.Text = wsWeb.Suma(txtVA.Text.Trim(), txtVB.Text.Trim());
        }
        catch (Exception ex)
        {
            lblSuma.Text = ex.Message;
        }        
    }
}

En el código anterior la linea No. 11 (WSSuma.Service wsWeb = new WSSuma.Service();)donde se instancia el Web Service es muy importante ya que nos va ha permitir acceder a los métodos del Web Service.

Finalmente nuestro ejemplo ya en ejecución quedaría de la siguiente forma:

Consumir Web Service Visual Studio

Los invito a consultar como crear un Web Services con C# en Visual Studio.
Share:

Crear Web Service con C# en Visual Studio

A continuación vamos a ver la creación de un Web Services con C# en Visual Studio .Net, que tendrá un método llamado Suma. Para este ejemplo utilizamos Visual Studio .Net 2008 pero puede aplicar para .Net 2010. Primero creamos un nuevo proyecto en el menú File - New - Web Site..., como nos muestra la siguiente imagen:


Luego seleccionamos el tipo de proyecto que para nuestro ejemplo es Asp.NET Web Services, buscamos una ubicación para guárdalo con el botón Browse... y damos clic en el botón Ok.

New Web Service Visual Studio

Ya creado el proyecto, el explorador de soluciones nos muestra la siguiente estructura de archivos.

Solution Explorer

Código fuente C#

En el código de .Net, se crea automáticamente una estructura básica que podemos modificar de acuerdo a nuestras necesidades. El atributo [WebMethod] nos indica si el método creado sera expuesto como Web Service, permitiendo que pueda ser consumido por otras aplicaciones,esto lo podemos ver claramente en la siguiente imagen.


Para crear nuestro método Suma reemplazamos el método HelloWorld por el siguiente código:

//Creacion de Metodo Suma que tiene el web Services
    //Los metodos se identifican con 
    [WebMethod]
    public string Suma(string Valor1, string Valor2) {
        int nSuma = 0;
        try
        {
            nSuma = Convert.ToInt32(Valor1) + Convert.ToInt32(Valor2);
        }
        catch
        {
            return "Uno de los valores digitados es incorrecto, por favor verifique.";
        }
        return nSuma.ToString();
    }

Explicando un poco el código anterior, el método Suma recibe dos parámetros (para este ejemplo son string pero podrían ser enteros - int) y la suma de ellos es retornado como un string, si ocurre una excepción ésta es controlada a través de try...catch.
Cuando ejecutamos el código anterior la respuesta en el explorador de Internet aparece nuestro método Suma, luego al dar clic en él, nos solicita los dos parámetros que le declaramos.



Finalmente luego de digitar los valores y dar clic sobre el botón Invocar, el método retorna la siguiente respuesta en formato Xml.


Hasta aquí finalizamos la creación del nuestro Web Service. Los invito ha conocer como Consumir Web Service desde C# .Net

"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

Formulario MDI Child C# en Visual Studio 2012

Los Formularios MDI son aquellos que nos permiten contener otros formularios dentro de ellos. A continuación vamos a trabajar un ejemplo en C# Visual Studio 2012, que cual tendrá un formulario principal - MDIParent , a éste se le debe establecer la propiedad IsMdiContainer en "true".


Luego nos creamos nuestro formulario Mdi, que para este ejercicio se llama Form1 - MdiChildren.




Para llamar nuestro formulario MdiChildren una sola vez, desde el formulario principal, podemos crear el siguiente método y llamarlo en el evento Click del menú, así:
private void CallFormMdi()
    {
        bool encontrado = false;
            foreach (Form form in this.MdiChildren)
            {
                if (form.Name.Equals("Form1"))
                {
                    encontrado = true;
                    form.Activate();
                }
            }

            if (!encontrado)
            {
                Form1 _frmGenerarArchivo = new Form1();
                _frmGenerarArchivo.MdiParent = this;
                _frmGenerarArchivo.Show();
            }
    }
 
private void OpenForm(object sender, EventArgs e)
{
 CallFormMdi();
}
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

Parte II: Solo Letras C# - Windows Forms (Consola)

Por solicitud de algunas personas, donde necesitan realizar la validación de solo letras en C# no en un control Textbox sino que exista un método o función que reciba el parámetro del texto y retorne como resultado si los caracteres son o no letras. A continuación dejo para ustedes, código ejemplo completo realizado en Visual Studio.Net C# con un proyecto de tipo consola.


using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleSoloLetras
{
    class Program
    {
        static void Main(string[] args)
        {
            string sCaracteres = string.Empty;

            //Solicitar el dato
            Console.WriteLine("Escriba un texto a validar");
            sCaracteres = Console.ReadLine();

            //Llamar metodo que evalua los caracteres
            if (IsLetters(sCaracteres))
            {
                Console.WriteLine("Los caracteres son letras.");
            }
            else
            {
                Console.WriteLine("Solo se aceptan letras");
            }
            Console.ReadLine();
        }

        //Metodo que permite identificar si los caracteres son letras o no
        static bool IsLetters(string sCaracteres)
        {
            foreach (char ch in sCaracteres)
            {
                if (!Char.IsLetter(ch) && ch != 32)
                {
                    return false;
                }
            }
            return true;
        }
    }
}
Si tienen dudas o le fue de ayuda este ejemplo, por favor nos leemos en los comentarios, hasta pronto.
Share:

Adicionar assembly que no existe - The type 'Global' is defined in an assembly that is not referenced


Compilation Error 

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0012: The type 'Global' is defined in an assembly that is not referenced. You must add a reference to assembly 'App_Code.77wcm7ag, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.

Source Error:

Line 83:     }
Line 84:     
Line 85:     protected ASP.global_asax ApplicationInstance {
Line 86:         get {
Line 87:             return ((ASP.global_asax)(this.Context.ApplicationInstance));

Source File: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\transaccional\e224545b\e01314f1\App_Web_movilidad.aspx.701f4c92.xzfw98jm.0.cs    Line: 85


Solución

Como nos damos cuenta, el error radica que el sitio hace referencia archivos temporales que se crean cuando se consume el mismo.
Para solucionarlo debemos reiniciar o detener el IIS y luego limpiar los archivos temporales que se encuentran en la ruta.

Me cuentan como les fue, hasta pronto.

Share:

c#: Duplicate items are not supported by the "Resources" parameter

Hoy les presento un error que le sucedió a un amigo (Pedro) a la hora de obtener una copia del diseño y código de un formulario de un proyecto en Visual Studio .Net. Para esto, lo que realizo fue copiar el formulario original y realizarle una copia. Cuando intento abrir la copia del formulario le genero el siguiente error:

"Error 1 The item "obj\Debug\My_Project.NewConsumable.resources" was specified more than once in the "Resources" parameter. Duplicate items are not supported by the "Resources" parameter. My Project"

Solución:

1. Cerrar el Visual Studio.
2. Ir a la carpeta del proyecto de Visual Studio.
3. Localizar el cs. y Designer.cs que acabo de realizarle copia.
4. Abrir ambos archivos.
5. Buscar y reemplazar las instancias del nombre del formulario original con el nombre del nuevo formulario. Tener presente mantener las convenciones de nombres.
6. Guardar ambos archivos, cerrar el editor.
7. Ir a Visual Studio y abrir el proyecto recién corregido y listo.
Cualquier sugerencia o duda nos leemos en los comentarios.

Hasta pronto.
Share:

Visual Studio .Net: resx Invalido

Para restaurar en Visual Studio .Net un archivo resx invalido debemos seguir los siguientes pasos:

1. Eliminar del explorador de proyecto el archivo resx invalido asociado al formulario que presenta problemas.
2. Haga doble clic para abrir el diseñador del formulario.
3. En el formulario, realizar cualquier cambio por ejemplo: mover un botón, caja de texto o control de posición. 
4. Listo!!! Visual Studio generar automáticamente un nuevo archivo resx.

Espero que los pasos anteriores los pueda ayudar. Si tienen dudas o sugerencias del post, los puedes realizar en los comentarios hasta pronto.
Share:

SQL Integration Services - SSIS: Contenedor de bucles Foreach

El contenedor de bucles Foreach define un flujo de control que se repite en un paquete. Este es un componente definido en el SSIS (SQL Server Integration Services). La ejecución del bucle en el contendor For Each es similar al bucle Foreach de varios lenguajes de programación conocidos.

Existen diferentes tipos de enumeradores disponibles que son:

* Enumerador de archivos para Foreach
El enumerador de archivos enumera los archivos en una carpeta. Por ejemplo, podemos obtener todos los archivos que tienen la extensión *. Txt en una carpeta de Windows y sus subcarpetas.

* Enumerador ADO para Foreach
Permite enumerar las filas de una tabla. Por ejemplo, podemos obtener las filas de los registros ADO.

* Enumerador de conjunto de filas del esquema Foreach de ADO.Net
El enumerador ADO.Net enumera la información del esquema. Por ejemplo, podemos obtener la una lista de tablas de la base de datos.

* Enumerador de elementos para Foreach
Utilizado para enumerar elementos que son colecciones. Por ejemplo, podemos enumerar los nombres de los ejecutables y directorios de trabajo que utiliza una tarea Ejecutar proceso.

* Enumerador de lista de nodos para Foreach
La lista de nodos que permite Enumera el resultado de una expresión XPath.

* Enumerador de variable para Foreach
El enumerador de variable enumera los objetos que contienen variables especificadas. Aquí los objetos enumerador no son más que una matriz o tabla de datos, como por ejemplo un DataSet de ADO.Net

* Enumerador de SMO para Foreach
El enumerador de SMO enumera los objetos de administración de SQL Server (SMO). Por ejemplo, se puede obtener la lista de funciones o vistas de una base de datos SQL Server.

Para este ejemplo utilizaremos el enumerador de archivos Foreach, vamos a copiar los archivos que se encuentran en una carpeta Origen (C:\Origen) a una carpeta Destino (D:\Destino).

Business Intelligence ProjectsPrimero abrimos el Visual Studio y creamos un proyecto Business Intelligence - Integración de
servicios como lo muestra la siguiente imagen.


Después de crear el proyecto de integración de servicios cambiamos el nombre por defecto de la Dtsx package1, para este ejemplo podemos poner ExampleForeach.

Solution Explorer

Seguidamente empezamos agregando una variable a nuestro paquete ExampleForeach, damos clic derecho sobre el modo de diseño y en el menú damos clic sobre Variables.


Luego nos aparece una ventana que nos permite Agregar la variable.



Aquí añadimos como nombre de variable File, tipo de datos String y value o valor default.



Ya configurada nuestra variable, procedemos arrastrar el contenedor de bucles ForEach que se encuentra en la caja de herramientas al formulario.

Quedando el contenedor bucle Foreach en modo diseño de la siguiente forma:


Para configurar nuestro control seguiremos los siguientes pasos:

1. Dar doble clic en el cuadro contenedor de bucle o clic derecho Edit
2. Luego se muestra una ventana para editar el bucle Foreach.
3. En esta ventana en el menu Collection seleccionamos en tipo enumerador, Enumerador de archivos.
4. Establecemos la carpeta Origen en la sección configuración de Enumeración. Para este ejemplo he dejado la ruta D:\Docs 
5. Si lo deseamos, marcamos la casilla de verificación Traverse Subcarpetas.

Si seguimos los pasos anteriores tendremos una configuración como lo muestra la siguiente imagen:


En la misma ventana, seleccionamos del menú izquierdo la opción Variable Mappings aquí seleccionamos la variable que habiamos creado.
Finalmente damos clic en Aceptar. 
En este punto ya tenemos configurado nuestro contenedor de bucles ForEach. Ahora agregamos un control File System Task a nuestro contenedor de bucles Foreach, debe quedar como se muestra en la imagen.

Foreach Loop Container

Para configurar seguimos los siguientes pasos:

1. Dar doble clic en el cuadro File System Task o clic derecho Edit.
2. En la ventana establecer IsDestinationPathVariable en False.
3. Configuramos la conexión destino, en la propiedad DestinationConnection
4. Seleccionamos la opción de nueva conexión.


5. En la ventana que aparece seleccionamos "Carpeta existente" o Existing folder.
6. Seguidamente, seleccionamos la carpeta de destino mediante "Examinar". Para este ejemplo seleccionamos D:\Destino

Dar clic en Ok para continuar la configuración.

7. Luego Seleccionamos la Operación, para este caso es Copiar archivos o Copy file.
8. Cambiamos a True la propiedad IsSourcePathVariable y seleccionamos la opción SourceVariable User::File

Quedando la parametrización para nuestro control de la siguente forma:


En la ventana damos clic en Ok. Ejecutamos nuestro proyecto (F5) y si todo nos sale bien debemos ver una imagen como la siguiente, además de verificar si los archivos fueron copiados de acuerdo a las rutas configuradas como Origen y Destino.


"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

Crear Setup o Instalador en Visual Studio .NET 2010

Este post nos permite mostrar paso a paso como se configura un Setup o instalador en Visual Studio .Net 2010.
Para este ejemplo realice un pequeño proyecto con un formulario que nos da la bienvenida así:


Luego de crear la aplicación, agregamos un nuevo proyecto Setup, para esto damos clic derecho sobre la solución y seleccionamos la opción Agregar - Nuevo proyecto, luego nos aparece una ventana como lo muestra la siguiente imagen:














En esta ventana nos ubicamos en el árbol de la izquierda, ingresamos a Otro tipo de proyecto (Other Project Types)  - Instalación e Implementación (Setup and Deployment) y luego seleccionamos Visual studio Installer. En la ventana de la derecha seleccionamos Setup Project, digitamos el nombre del proyecto para este caso SetupEjemplo y clic en el botón OK. Finalmente nos aparece el proyecto agregado a la solución como se ve en la siguiente imagen:


Para asociar nuestra aplicación al Setup, damos clic derecho sobre Application Folder - Add - Project Outout.. o proyecto de salida, como lo muestra la siguiente imagen:


Seguidamente nos aparece esta ventana donde debemos seleccionar Primary output (contiene la Dll o Exe del proyecto) y damos clic sobre el botón OK.

Seleccionar Ejecutable

La siguiente ventana nos indica que hemos asociado correctamente el Setup con nuestra aplicación. Esto lo podemos ver en el Explorador de soluciones en nuestro proyecto de instalación.


Al dar clic sobre el proyecto Setup nos aparecen las propiedades del mismo, aquí podemos configurar el Autor, descripción, nombre del producto, versión, entre otras propiedades.










Si nuestra aplicación, previamente necesita de algún producto Framework, Crystal Reports o Sql Server, se encuentre instalado, lo podemos hacer de la siguiente manera. Damos clic derecho sobre el Setup - Propiedades así:


Nos muestra una ventana de propiedades del Setup. En ésta, existe un botón llamado prerrequisitos o Prerequisites... damos clic en él. Luego nos aparece una ventana que nos permite marcar aquellos componentes que nuestra aplicación necesita para una correcta ejecución.


Luego de lo anterior, tenemos prácticamente configurado nuestro Setup, solo resta configurar un acceso directo de nuestro instalador, ya se en en el escritorio o en Inicio - Todos los programas, lo podemos hacer de la siguiente forma:

* Estando en el instalador, en la parte izquierda aparece una carpeta llamada User's Desktop, aquí damos clic derecho, luego en el submenú seleccionadmos Add - Project Output.. y finalmente en la ventana que aparece seleccionamos Primary output y clic en Aceptar.

En la explicación anterior nuestro acceso directo queda en el escritorio de nuestro PC. Si queremos ponerlo en Inicio - Todos los programas seleccionamos la carpeta User's Programs Menú y seguimos los pasos anteriores.

Finalmente para generar nuestro Setup, solo basta con ubicarnos en el proyecto y compilamos:

Compilar Setup
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""


Share:

Exportar DataSet a Excel desde C# .Net

Hace un par de días, un compañero me llamo a preguntarme si conocía como pasar o exportar los datos de una grilla (DatagridView) en .Net C# a un archivo Excel. Fue aquí, donde recordé que había hecho algo parecido hace algún tiempo. Este código por su necesidad en la mayoría de las aplicaciones (Exportar datos) puede llegar a ser muy útil y quiero que lo tengan con ustedes.

Empecemos explicando un poco la funcionalidad del ejemplo.

Los datos que voy a mostrar en la grilla vienen de un procedimiento almacenado, estos registros los almaceno en una variable publica de tipo DataSet, la cual se encarga de poblar o llenar la Grilla y finalmente exporta los datos ha Excel. Les muestro el código para ser un poco mas claro.



Declaramos de Variable Dataset
DataSet dsDatos = new DataSet();

Se llena la variable con la consulta que viene de base de datos y se muestran los datos en la Grilla.
SqlCommand cmd = new SqlCommand(sSql, connDB);
SqlDataAdapter DaRecDatos = new SqlDataAdapter(cmd);
DaRecDatos.Fill(dsDatos);
dataGridView1.DataSource = dsDatos;

Para exportar los datos llamo al Dataset (dsDatos) que previamente llenamos y se lo pasamos aun método llamado, para este ejemplo ExportarAexcel que se encargara de exportar los datos en la ruta que seleccionamos en el FileDialog, así:
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel Files (*.xls)|*.xls";// All Files (*.*)|*.*";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
	FileName = saveFileDialog.FileName;
	if (FileName.Trim() != "")
	{
		if (ExportarAexcel(dsDatos, FileName, ref sError))
		{
			return true;
		}                    
	}
}

Anexo método que exporta los datos:
public static bool ExportarAexcel(DataSet source, string fileName,ref string sErr)
{
	try
	{
		System.IO.StreamWriter excelDoc;

		excelDoc = new System.IO.StreamWriter(fileName);
		const string startExcelXML = "\r\n\r\n \r\n " +
		  "\r\n " +
		  "\r\n " +
		  "\r\n \r\n " +
		  "\r\n \r\n " +
		  "\r\n ";
		const string endExcelXML = "";

		int rowCount = 0;
		int sheetCount = 1;
	   
		excelDoc.Write(startExcelXML);
		excelDoc.Write("");
		excelDoc.Write("");
		excelDoc.Write("");
		for (int x = 0; x < source.Tables[0].Columns.Count; x++)
		{
			excelDoc.Write("");
			excelDoc.Write(source.Tables[0].Columns[x].ColumnName);
			excelDoc.Write("");
		}
		excelDoc.Write("");
		foreach (DataRow x in source.Tables[0].Rows)
		{
			rowCount++;
			//if the number of rows is > 64000 create a new page to continue output
			if (rowCount == 64000)
			{
				rowCount = 0;
				sheetCount++;
				excelDoc.Write("
"); excelDoc.Write("
"); excelDoc.Write(""); excelDoc.Write(""); } excelDoc.Write(""); //ID=" + rowCount + " for (int y = 0; y < source.Tables[0].Columns.Count; y++) { System.Type rowType; rowType = x[y].GetType(); switch (rowType.ToString()) { case "System.String": string XMLstring = x[y].ToString(); XMLstring = XMLstring.Trim(); XMLstring = XMLstring.Replace("&", "&"); XMLstring = XMLstring.Replace(">", ">"); XMLstring = XMLstring.Replace("<", "<"); excelDoc.Write("" + ""); excelDoc.Write(XMLstring); excelDoc.Write(""); break; case "System.DateTime": //Excel has a specific Date Format of YYYY-MM-DD followed by //the letter 'T' then hh:mm:sss.lll Example 2005-01-31T24:01:21.000 //The Following Code puts the date stored in XMLDate //to the format above DateTime XMLDate = (DateTime)x[y]; string XMLDatetoString = ""; //Excel Converted Date XMLDatetoString = XMLDate.Year.ToString() + "-" + (XMLDate.Month < 10 ? "0" + XMLDate.Month.ToString() : XMLDate.Month.ToString()) + "-" + (XMLDate.Day < 10 ? "0" + XMLDate.Day.ToString() : XMLDate.Day.ToString()) + "T" + (XMLDate.Hour < 10 ? "0" + XMLDate.Hour.ToString() : XMLDate.Hour.ToString()) + ":" + (XMLDate.Minute < 10 ? "0" + XMLDate.Minute.ToString() : XMLDate.Minute.ToString()) + ":" + (XMLDate.Second < 10 ? "0" + XMLDate.Second.ToString() : XMLDate.Second.ToString()) + ".000"; excelDoc.Write("" + ""); excelDoc.Write(XMLDatetoString); excelDoc.Write(""); break; case "System.Boolean": excelDoc.Write("" + ""); excelDoc.Write(x[y].ToString()); excelDoc.Write(""); break; case "System.Int16": case "System.Int32": case "System.Int64": case "System.Byte": excelDoc.Write("" + ""); excelDoc.Write(x[y].ToString()); excelDoc.Write(""); break; case "System.Decimal": case "System.Double": excelDoc.Write("" + ""); excelDoc.Write(x[y].ToString()); excelDoc.Write(""); break; case "System.DBNull": excelDoc.Write("" + ""); excelDoc.Write(""); excelDoc.Write(""); break; default: throw (new Exception(rowType.ToString() + " not handled.")); } } excelDoc.Write(""); } excelDoc.Write("
"); excelDoc.Write("
"); excelDoc.Write(endExcelXML); excelDoc.Close(); } catch (Exception ex) { sErr = ex.Message; return false; } return true; }

Si desean conocer como Exportar un DaTable a formato CSV no dejen de visitarlo es una funcionalidad que los puede sacar de apuros en cualquier proyecto.

"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""


Share:

Instalar Visual Studio 2010

Hola como estan, aunque ya tenemos disponible la ultima versión de Visual Studio 2012, recientemente tuve la necesidad de instalar Visual Studio 2010 por razones de mantenimiento de una aplicación web. Es por esto que hoy les traigo un paso a paso de la instalación espero sea de su utilidad.

La primera ventana que nos aparece, nos da la bienvenida a la instalación, aquí se cargan componentes necesarios para el inicio de la instalación:


Luego nos muestra los términos y condiciones de licencia, dar clik en Next o siguiente.


Aquí nos permite seleccionar por una instalación full (completa) o Custom (personalizado), a la derecha nos muestra una breve descripción de la instalación ruta o paht y espacio requerido para una correcta instalación.


Seleccionando la opción Custom o personalizada, el wizard de la instalación nos permite marcar que aplicaciones o componentes del Visual Studio deseamos instalar como lo muestran las dos siguientes imagenes:



Al dar clik en Instal (Instalar) el proceso inicia en forma la instalación de los componentes, como lo indica la siguiente imagen: 



Finalmente terminado el anterior proceso correctamente, el wizard nos muestra una imagen como la siguiente donde los indica que toda la instalacion se realizo satisfactoriamente:


Dando clik en finish, la instalación nos solicita reiniciar el computador para que todos los cambios queden aplicados.


Como pueden ver, es una instalación bastante estable y segura de realizar, si llegan a tener algún comentario o duda me cuentan, hasta pronto.




Share: