Я загружаю файл Excel и извлекаю данные из него и сохраняю его в базу данных. Я использую MVC4 .NET Framework. Это мой код из класса:Сохраните и удалите файл Excel, сохраненный с использованием HttpPostedFileBase
public static void Upload(HttpPostedFileBase File)
{
NIKEntities1 obj = new NIKEntities1();
MyApp = new Excel.Application();
MyApp.Visible = false;
string extension = System.IO.Path.GetExtension(File.FileName);
string pic = "Excel" + extension;
string path = System.IO.Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/Excel"), pic);
File.SaveAs(path);
MyBook = MyApp.Workbooks.Open(path);
MySheet = (Excel.Worksheet)MyBook.Sheets[1]; // Explicit cast is not required here
int lastRow = MySheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
List<Employee> EmpList = new List<Employee>();
for (int index = 2; index <= lastRow; index++)
{
System.Array MyValues = (System.Array)MySheet.get_Range("A" +
index.ToString(), "B" + index.ToString()).Cells.Value;
EmpList.Add(new Employee
{
BatchID = MyValues.GetValue(1, 1).ToString(),
BatchName = MyValues.GetValue(1, 2).ToString()
});
}
for (int i = 0; i < EmpList.Count; i++)
{
int x=obj.USP_InsertBatches(EmpList[i].BatchID, EmpList[i].BatchName);
}
}
}
class Employee
{
public string BatchID;
public string BatchName;
}
Этот код работает отлично в первый раз, но в следующий раз он говорит, что файл в настоящее время используется. Так я думал, удаления файла в конце кода, используя следующую строку:
File.Delete(path);
Но эта линия бросил ошибку:
HttpPostedFileBase does not contain definition for Delete
Кроме того, если я не пишу эту строку и попытаться выполните код еще раз, он говорит, что он не может сохранить, потому что файл существует с тем же именем и не может быть заменен, поскольку он в настоящее время используется.
Что я должен сделать, чтобы избавиться от этого:
(File.Delete()) Error
Любой другой способ доступа к файлу Excel, который я получаю без сохранения также будет очень полезно, потому что я должен просто получить доступ к данным один раз ,
Done That. Последняя часть, в которую вы поставили цикл от 1 до 10, в моем случае не требовалась. Я просто закрыл книгу в конце, а затем удалил этот файл –