J'ai créé un programme dans lequel je lis un ensemble d'enregistrements de la base de données, puis je l'enregistre dans un DataGrid. De là, je fais que l'utilisateur télécharge le fichier en tant que fichier Excel.Erreur lors de la lecture d'un fichier .xls excel téléchargé dans asp.net
Maintenant, l'utilisateur apporte des modifications au fichier, puis le télécharge à nouveau et à partir de là, je lis le fichier .xls téléchargé et apporte les modifications nécessaires dans le DB.
Le problème est que lorsque l'utilisateur télécharge le fichier Excel mis à jour, je ne peux pas y accéder et obtenir une erreur.
Table externe n'est pas dans le prévu le format
Je fais l'utilisateur télécharger le fichier en tant que
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
// first let's clean up the response.object
response.Clear();
response.Charset = "";
// set the response mime type for excel
response.ContentType = "application/vnd.ms-excel";
response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
// create a string writer
using (System.IO.StringWriter sw = new System.IO.StringWriter())
{
using (System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw))
{
// instantiate a datagrid
System.Web.UI.WebControls.DataGrid dg = new System.Web.UI.WebControls.DataGrid();
dg.DataSource = dt;
dg.DataBind();
dg.RenderControl(htw);
response.Write(sw.ToString());
response.End();
}
}
L'utilisateur télécharger le fichier après avoir modifié et je lis comme
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + path + "\\" + FileUpload1.FileName + ";Extended Properties=Excel 8.0;";
OleDbConnection oledbConn = new OleDbConnection(connString);
oledbConn.Open();
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [$Sheet1 ", oledbConn);
OleDbDataAdapter oleda = new OleDbDataAdapter();
oleda.SelectCommand = cmd;
DataSet ds = new DataSet();
oleda.Fill(ds, "Employees");
Veuillez nous aider. Merci.