Ok, mira, la estructura del excel es la siguiente
idExcel DatoExcel Datos
1 abc 0
2 def #¿NOMBRE?
3 ghi
y nombre de la hoja es "Hoja1"
el codigo ASPX seria:
Código ASP:
Ver original<form runat="server">
<asp:FileUpload ID="uplExcel" runat="server" /><br />
<asp:Button ID="Button1" runat="server" OnClick="clcikSubirArchivo" Text="Subir Archivo" />
<asp:Button ID="Button2" runat="server" OnClick="leerExcel" Text="Leer Contenido" /><br />
<asp:Label ID="lblResultado" runat="server"></asp:Label><br />
</form>
y en el behind seria asi:
para subir el excel al servdor (y cualquier archivo..
Código C:
Ver originalprotected void clcikSubirArchivo(object sender, EventArgs e)
{
if (uplExcel.HasFile)//si tiene un archivo
{
string strArchivo = uplExcel.FileName;
string strExtencion = Path.GetExtension(strArchivo);
if ((strExtencion == ".xls") || (strExtencion == ".XLS"))
{
string strNombreArchivo = "FNI54FR" + strExtencion;
string strFileName = Path.Combine(Server.MapPath("~/Recib"), strNombreArchivo);
uplExcel.SaveAs(strFileName);
}//fin extencion
}//fin uplexcel
}//fin subir archivo
"Recib" es el nombre de la carpeta virtual dentro de la carpeta de tu projecto
"C:\Inetpub\wwwroot\TuProjecto\Recib"
para leer el contenido seria lo siguiente:
Código C:
Ver originalprotected void leerExcel(object s, EventArgs e)
{
leerExcel2();
}
protected void leerExcel2()
{
//para leer un excel se lee como oledb
string strConExcel = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\Recib\FNI54FR.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
using (DbConnection conConExcel = factory.CreateConnection())
{
conConExcel.ConnectionString = strConExcel;
using (DbCommand cmdConExcel = conConExcel.CreateCommand())
{
cmdConExcel.CommandText = "Select idExcel, DatoExcel, Datos From [Hoja1$]";
conConExcel.Open();
using (DbDataReader dtrConExcel = cmdConExcel.ExecuteReader())
{
while (dtrConExcel.Read())
{
lblResultado.Text += dtrConExcel["idExcel"].ToString() + " " + dtrConExcel["DatoExcel"].ToString() + " " + dtrConExcel["Datos"].ToString() + "</br>";
}
}//fin using dtrConExcel
conConExcel.Close();
}//fin using cmdConExcel
}//fin using conConExcel
}//fin leer excel
y debe llamar a las librerias
using System.IO;
using System.Reflection;
using System;
using System.Data;
Espero te sirva.