PDA

View Full Version : سوال: export اطلاعات در اکسل



hastiam
یک شنبه 20 بهمن 1392, 10:40 صبح
سلام دوستان
من در یکی از فرمهام لیستی از اطلاعات دارم برنامه ای نوشتم که کاربر بتونه اطلاعات رو تو یک فایل اکسلی Export کنه.
به صورت زیر :


try
{
OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
HttpPostedFileBase hpf = Request.Files[0] as HttpPostedFileBase;
string[] ValidExt = { ".xlsx", ".xls" };
string curExt = System.IO.Path.GetExtension(hpf.FileName).ToLower( );
string curNameWithoutExt3 = System.IO.Path.GetFileName(hpf.FileName);
FileInfo f = new FileInfo(curNameWithoutExt3);
string a = Path.Combine(Directory.GetCurrentDirectory(), curNameWithoutExt3);
string sConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= '" + a + "';Extended Properties='Excel 12.0;HDR=YES;'";
OleDbConnection MyConnection = new OleDbConnection(sConnection);
MyConnection.Open();
myCommand.Connection = MyConnection;
myCommand.CommandText = "Insert into [Sheet1$] (GoodsCode,GoodsName,ConsumptionIndex,WarehouseNam e) values(@p1,@p2,@p3,@p4)";
var getList = repository.ProductionFormulas.Where(i => i.CreditFormula.GoodsId == goodsId).ToList().Select(i => new { GoodsCode = i.BOMGoods.Code, GoodsName = i.BOMGoods.Name, ConsumptionIndex = i.ConsumptionIndex, WarehouseName = i.Warehouse.Name }).ToList();
foreach (var m in getList)
{
myCommand.Parameters.Add("@p1", OleDbType.VarChar).Value = m.GoodsCode;
myCommand.Parameters.Add("@p2", OleDbType.VarChar).Value = m.GoodsName;
myCommand.Parameters.Add("@p3", OleDbType.Decimal).Value = m.ConsumptionIndex;
myCommand.Parameters.Add("@p4", OleDbType.VarChar).Value = m.WarehouseName;
myCommand.ExecuteNonQuery();
myCommand.Parameters.Clear();
}
}
catch (Exception ex)
{
result.Successfull = false;
result.Message = "NOK";
}

وقتی به myCommand.ExecuteNonQuery() میرسه خطای زیر رو نشون میده :
The Microsoft Access database engine could not find the object 'Sheet1$'. Make sure the object exists and that you spell its name and the path name correctly. If 'Sheet1$' is not a local object, check your network connection or contact the server administrator
من فکر میکنم به خاطر اینکه همه اطلاعات رو داره از سرور میخونه و فایل اکسلی رو به صورت Local میخونه این خطا رو می گیره، چطوری میشه کاربر یک فایل اکسلی رو از رو کامپیوتر خودش انتخاب کنه و اطلاعات رو اکسپورت کنه.
ممنون از توجهتون.

hastiam
دوشنبه 21 بهمن 1392, 08:42 صبح
کسی نمیتونه به این سوالم جواب بده؟ :افسرده::افسرده::افسرده: