Hola Patricia
Pero ya tienes los datos cargados? supongamos que si, para un reporte en excel yo lo hago de la siguiente manera.
El lenguaje usado es C#, si usas otro conviertelo a tu lenguaje.
Código:
StreamWriter w;
FileStream fs = new FileStream("Ruta del archivo de salida, ejemplo Reporte.xls", FileMode.Create, FileAccess.ReadWrite);
w = new StreamWriter(fs);
StringBuilder html = new StringBuilder();
html.Append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">");
html.Append("<html>");
html.Append("<head>");
html.Append("<title>B&B Hotel - Lista de Huespedes</title>");
html.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />");
html.Append("</head>");
html.Append("<body>");
html.Append("<p>");
html.Append("<table>");
html.Append("<tr style=\"font-weight: bold;font-size: 12px;color: black;\">");
html.Append("<td>NoHabitacion</td>");
html.Append("<td>Reservacion</td>");
html.Append("<td>Fecha Entrada</td>");
html.Append("<td>Fecha Salida</td>");
html.Append("<td>Nombre</td>");
html.Append("</tr>");
w.Write(html.ToString());
string fontColor = "";
fontColor = " style=\"font-size: 10px;color: black;\" ";
Con eso generas la estructura de tu Excel, luego hay que llenar los datos.
Yo los datos los tengo desde una grilla que lleno previamente.
Código:
for (int zzzzZZZZ = 0; zzzzZZZZ < dataGridView_RegistroEntradas.RowCount; zzzzZZZZ++)
{
w.Write(@"<tr><td {0}>{1}</td><td{0}>{2}</td><td{0}>{3}</td><td{0}>{4}</td><td{0}>{5}</td></tr>", fontColor, dataGridView_RegistroEntradas.Rows[zzzzZZZZ].Cells[0].Value.ToString(), dataGridView_RegistroEntradas.Rows[zzzzZZZZ].Cells[1].Value.ToString(), dataGridView_RegistroEntradas.Rows[zzzzZZZZ].Cells[2].Value.ToString(), dataGridView_RegistroEntradas.Rows[zzzzZZZZ].Cells[3].Value.ToString(), dataGridView_RegistroEntradas.Rows[zzzzZZZZ].Cells[4].Value.ToString());
}
Te aclaro el panorama, los <td {0}>{1}</td> son las columnas que has creado previamente (codigo de arriba), y los parametros que metes, van al final, como te repito yo tengo todo en una grilla, si tienes 5 columnas, debes insertar 5 datos.
Cierras tu documento.
Código:
StringBuilder html2 = new StringBuilder();
html2.Append("</table>");
html2.Append("</p>");
html2.Append("</body>");
html2.Append("</html>");
w.Write(html2.ToString());
w.Close();
Espero te sirva, si tienes dudas pregunta por aqui. Saluditos