09/01/2008, 14:29
|
| | Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 5 meses 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 |