Я строю небольшой веб-сайт в .NET с C#. Пользователь должен загрузить файл Excel, расширение .xls или .xlsx, которое уже реализовано. Хотя у меня проблемы с чтением значений из файла Excel. Сейчас у меня этот кусок кода выписал:Не удается прочитать файл Excel - File.open недействителен
public ActionResult Index(HttpPostedFileBase file)
{
string fileName = Path.GetFileName(file.FileName);
if (fileName.EndsWith(".xlsx") || (fileName.EndsWith(".xls")))
{
// store the file inside ~/App_Data/uploads folder
string path = Path.Combine(Server.MapPath("~/App_Data/uploads/"), fileName);
file.SaveAs(path);
// Get file info
int contentLength = file.ContentLength;
string contentType = file.ContentType;
// Get file data
byte[] data = new byte[] { };
using (var binaryReader = new BinaryReader(file.InputStream))
{
data = binaryReader.ReadBytes(file.ContentLength);
}
using (FileStream fs = File.Open(path, FileMode.OpenOrCreate))
{
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(data, 0, data.Length) > 0)
{
//Console.WriteLine(temp.GetString(b));
}
}
// redirect back to the index action to show the form once again
return RedirectToAction("Index");
}
Теперь я предполагаю, что код AINT плохо, но я получаю сообщение об ошибке @ второй линии, используя, в «File.open (...) '
'System.Web.Mvc.Controller.File(byte[], string)' is a 'method', which is not valid in the given context C:\Users\.....cs
Я прочитал множество примеров в Интернете, но ни один из них не кажется, имеет подобную проблему:/Если кто-то может решить эту ошибку или помочь мне с этой проблемой, было бы весьма признателен! Это, наверное, что-то маленькое/глупое.
Похоже, в классе контроллера MVC существует метод под названием «Файл». Вместо этого попробуйте использовать полное имя, то есть «System.IO.File.Open (...)». – Dirk
Похоже, вы не импортируете пространство имен 'System.IO'. Кроме того, попытка чтения файла Excel без библиотеки, такой как Aspose или Office Automation (которая не должна использоваться в серверных приложениях в любом случае), является Fur's Errand. – Dai
ах да, это решило ошибку. Благодаря! И что бы вы порекомендовали точно? Я буду google Aspose и OA, хотя у меня немного проблемы с atm tbh. –