09/01/2008, 14:29
|
| | Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 21 años, 1 mes Puntos: 1 | |
Re: Ayuda con Excel Cita:
Iniciado por Kurace Yo tuve un problema parecido, pero lo solucioné así: Código PHP: private void cmdInformeUser_Click(object sender, System.EventArgs e)
{
// Utilizamos una librería externa llamada "ExportToExcel" para poder realizar la operación
// de escribir en el fichero de Excel los datos de la base de datos
//
// Lo hemos utilizado de CodeProject de esta URL:
// http://www.codeproject.com/KB/office/Excel_Export.aspx
ExportToExcel.ExcelExport objExport = new ExportToExcel.ExcelExport();
// Definimos el directorio temporal
objExport.TempFolder = @"\temp\";
// Definimos el directorio de la plantilla
objExport.TemplateFolder = @"template";
// Definimos el estilo del XLS
objExport.XSLStyleSheetFolder = @"XSLStyleSheet";
// Limpiamos de ficheros temporales, puesto que cada vez que se crea un fichero de Excel,
// se van acumulando. De este modo se impide que ocurra.
objExport.CleanUpTemporaryFiles();
// Definimos la consulta
string sSel = "select idUser, name, surnames, company, nif, telephone, mobile, fax, email, country, city, address, number, floor, cp, login from users order by idUser desc";
// Definimos el fichero
string fichero="";
// Definimos las variables para realizar la consulta a la base de datos
SqlDataAdapter da;
DataTable dt = new DataTable();
System.Data.SqlClient.SqlCommandBuilder commbuilder;
System.Data.DataSet dset = new System.Data.DataSet();
try
{
// Abrimos la conexión y rellenamos los datos al dataset
da = new SqlDataAdapter(sSel, conexion);
commbuilder = new System.Data.SqlClient.SqlCommandBuilder(da);
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
da.Fill(dset);
// Metemos datos al DataGrid
this.dg.DataSource = dset;
this.dg.DataBind();
}
// Si hay error, se muestra
catch(Exception ex)
{
Response.Write("Error: " + ex.Message);
}
// Transformamos los datos de la tabla de la Grid en un formato que pueda ser leído
// por Excel
fichero=objExport.TransformDataTableToExcel(dset.Tables[0],true);
// Lo exportamos a un fichero (nos aparecerá una ventanita diciendo si desea guardar
// el fichero
objExport.SendExcelToClient(fichero);
}
Sin problemas y funciona correctamente. Además me pasaba cosas raras (con el código que se ha puesto de los primeros) con Vista y con XP funcionaba bien. Pero fue hacer eso y ya no hay fallo...
Es mejor ponerlo en una carpeta aparte, para que no dé fallos. En mi caso lo hice con temp.
Saludos. Ya lo cheque Gracias y funciona bien solo que hay un problema cuando hace la consulta digamos unos 100,000 registros en la hoja de excel solo caben 65,000 y no me aparecen los demas, pero lo adapte con el codigo que gentilmente me envio txarly, pero cuando export a tal informacion me sige enviando la pantalla de error |